shell数组的等式赋值(变量交换)坑
2018-08-21 本文已影响149人
陆_志东
在shell中式不能直接用=交换数组的.如果直接使用=得到的就会是数组的第一个数值
1 # /bin/bash
2 res=(1 2)
3 res1=$res
4 echo ${res1[0]}
5 echo ${res1[1]}
输出:
1
--空行 ${res[1]} 并不存在
正确的数组交换
方式一
1 # /bin/bash
2 res=(1 2)
3 res1=(`echo ${res[*]}`)
4 echo ${res1[0]}
5 echo ${res1[1]}
输出:
1
2
方式二
1 # /bin/bash
2 res=(1 2)
3 res1=(${res[0]} ${res[1]})
4 echo ${res1[0]}
5 echo ${res1[1]}
输出:
1
2