shell数组小结

给数组赋值的几种方式

  1. 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 $i
done

输出:
1
2
3

注:${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[@]}
输出:
6
6 a b 8 1 2 3

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

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

则输出

7
6 a b 8 1 2 3

元素个数变成了7个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值