bash数组小结

2018-05-11  本文已影响0人  小二子SAMA

Bash Shell只支持一维数组。

  1. 数组声明方式:
    bash中数组可以不用声明,直接按照数组赋值方式给数组赋值,bash会将该变量按照数组处理
1)  declare -a array_name
2)  declare -p array_name # 等价于declare -a array_name='()'
  1. 数组赋值方式
    bash数组下标由0开始。
1)array_name=(var1 var2 var3  ... varN)
2)array_name=([0]=var1 [1]=var2 [2]=var3 ...[M]=varN)
3) array_name[0]=var1
   array_name[1]=var2
   array_name[2]=var3
         ...
   array_name[M]=varN
4)array_name+=(var1)
   array_name+=(var2)
   array_name+=(var3)
          ...
   array_name+=(varN)
  1. 获取数组长度方式
1)${#array_name[@]}
2)${#array_name[*]}

bash中@和*都表示“拓展参数,从1开始”

  1. 获取参数特定项方式
#index为特定位置下标
${array_name[index]}
  1. 获取数组全部值
1)${array_name[@]}
2)${array_name[*]}
  1. 实现数组遍历方式
fileName=(`ls`)
for file in ${fileName[@]}; do 
    echo $file; 
done
  1. 判断某个值是否位于数组中
if echo "${array_name[@]}" | grep -w "10" &>/dev/null; then 
echo "Found"; 
fi
  1. 将字符串拆分为数组
    1)以空格作为分隔符
str="aaa bbb ccc"
array_name=($str)
  1. 以特殊字符作为分隔符
#将IFS声明为需要使用的分隔符,可以为多个
IFS="[]"
str="[aaa] [bbb] [ccc]"
array_name=($str)

参考:

  1. BASH 数组用法小结
  2. 在Bash中将字符串拆分成数组
  3. 判断字符串是否在shell数组中
上一篇 下一篇

猜你喜欢

热点阅读