Linux shell Array详解

声明

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。

1
array_name=(value1 value2 ... valuen)

实例

1
2
my_array=("A" "B" "C" "D")
my_array[0]='value0'

使用方式

输出所有的value、长度

1
2
3
4
5
6
7
8
9
10
#1)输出下标
echo ${!myarray[@]}

#1)输出所有value
echo ${my_array[@]}

#2)输出array长度
echo ${#my_array[@]}
或者
echo ${#my_array[*]}

遍历

1
2
3
4
for var in ${my_array[@]} 
do
echo "打印的内容:"$var
done

若a=(1 2 3 4)表示所有元素,则其只能用${a[*]}或者${a[@]}来表示。在a=(1 2 3 4)中,$a只是表示第一个元素1。

若a=”1 2 3 4”表示所有元素,则其可以用${a[*]}或者${a[@]}或者$a来表示。

字符串转为数组

1
2
IFS=', ' read -r -a array <<< "$string"
echo ${array[@]}

‘string’以逗号作为分隔形成数组。

参考资料

Linux Shell Array的用法