1. 定义数组:
var_array=(one two three four five)
2.常用操作
获取数组长度: ${#var_array[@]}
获取所有数组元素: ${var_array[@]} or ${var_array[*]}
获取第一个数组元素:${var_array[0]} 数组下标从 0 开始。
数组元素字符替换:${var_array[@]/x/y} #最少替换,用y替换x
数组元素字符替换:${var_array[@]//x/y} #最多替换,用y替换x
数组元素删除: "#" 每个元素,从左向右进行最短匹配 ,"##" 最长匹配
数组元素删除: "%" 每个元素,从右向左进行最短匹配 ,"%%" 最长匹配
例子:
#!/bin/bash ## 定义一个空数组 var_array=() ## 数组赋值,数组下标从 0 开始 var_array=(china beijing shanghai sshenzhen nanjingg) ## 打印全部数组元素 ${var_array[@]} 或者 ${var_array[×]} echo "数组元素是:${var_array[@]}" ## 打印数组元素个数 echo "数组总数是:${#var_array[@]}" ## 数组遍历 for ((i=0;i < ${#var_array[@]}; i++)) do echo "第${i}个数组元素是: ${var_array[i]}" done ## 数组切片 echo "打印第二个元素之后的所有元素:"${var_array[@]:1}"" echo "打印第一个元素到第三个元素:${var_array[@]:0:3}" echo "打印倒数第二个元素开始打印,打印2个元素:${var_array[@]:(-2):2}" ## 根据现有数组,得到一个新数据 new_var_array=() new_var_array=${var_array[@]:0:3} echo "新数组是:${new_var_array[@]}" ## 数据替换 ## ${array[@]/x/y} 最小匹配替换,每个元素只替换一次 ## ${array[@]//x/y} 最大匹配替换,每个元素可替换多次 echo "将i替换xo,一个元素只替换一次:${var_array[@]/i/xo}" echo "将i替换xo,一个元素替换多次次:${var_array[@]//i/xo}" echo "将i替换空,一个元素替换多次次:${var_array[@]//i/}" ## 数组删除 ## "#" 每个元素,从左向右进行最短匹配 ## "##" 每个元素,从左向右进行最长匹配 ## "%" 每个元素,从右向左进行最短匹配 ## "%%" 每个元素,从右向左进行最长匹配 echo "将s开头的字符,单个删除:${var_array[@]#s*}" echo "将s开头的字符,全部删除:${var_array[@]##s*}" echo "将s开头的字符,全部删除:${var_array[@]%*g}" echo "将s开头的字符,全部删除:${var_array[@]%%*g}"
结果截图: