首页 > 学院 > 开发设计 > 正文

shell数组小结

2019-11-08 00:59:40
字体:
来源:转载
供稿:网友

给数组赋值的几种方式

array_nmae=(v0 v1 v2…);例:arr=(1 2 3);或者arr=( 1 2 3);

注意:等号两边不能有空格

2.array_name[i]=v;

例:arr[0]=1;arr[1]=2;arr[2]=3;

读取数组

1.获取其中某个元素 ${array_name[index]}

例:arr=(1 2 3);echo ${arr[2]}输出:3

注:shell数组下标是从0开始

2.遍历数组

例:arr=(1 2 3);for i in ${arr[@]}do echo $idone输出:123

注:${array_name[*]}或${array_name[@]}可获得数组中的所有元素

获取数组长度

${#array_name[@]}或者${#array_name[*]}

例:arr=(1 2 3);echo ${#arr[@]}输出:3

取数组中的一段

1.取下标大于等于n的元素 ${arr[@]:n}

例arr=(1 2 3 4 5 6);echo ${arr[@]:3};输出:4 5 6

2.取下标小于n的元素 ${arr[@]::n}

例:arr=(1 2 3 4 5 6);echo ${arr[@]::3}输出:1 2 3

3.从下标i开始取j个元素 ${arr[@]:i:j}

例:arr=(6 7 8 9 10);echo ${arr[@]:2:3}输出:8 9 10

拼接两个数组

new_array=(“array1[@]""{array2[@]}”)

例:arr1=(6 "a b" 8);arr2=(1 2 3);new_arr=("${arr1[@]}" "${arr2[@]}")echo ${#new_arr[@]}echo ${new_arr[@]}输出:66 a b 8 1 2 3

注意:一定要用引号把待拼接的数组包起来。否则如果数组中的单个元素内有空格就会出现问题。比如上例,如果不使用引号,改为

new_arr=(${arr1[@]} ${arr2[@]})

则输出

76 a b 8 1 2 3

元素个数变成了7个


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表