-
数组也是一个变量,有点特殊的变量,存储多个数据的集合就是数组。
-
不同的
shell解释器,索引起始位置也不一样,bash从0开始,csh,zsh从1开始。# 定义数组 $ arr=(11 22 33) # bash 解释器取出数组 0 索引的值 $ echo ${arr[0]} 11 # csh、zsh 解释器取出数组 1 索引的值 $ echo ${arr[1]} 11 -
@跟*的区别-
变量使用
*时,变量被""包裹,会当成一串字符串处理。 -
变量使用
@时,变量被""包裹,依然当做数组处理。 -
变量在没有被
""包裹的情况下,@跟*是等效的.
arr=(11 22 33) echo "---- @ 带冒号" for line in "${arr[@]}" do echo $line done echo "---- * 带冒号" for line in "${arr[*]}" do echo $line done echo "---- @ 不带冒号" for line in ${arr[@]} do echo $line done echo "---- * 不带冒号" for line in ${arr[*]} do echo $line done输出结果:
---- @ 带冒号 11 22 33 ---- * 带冒号 11 22 33 ---- @ 不带冒号 11 22 33 ---- * 不带冒号 11 22 33 -