很多Shell中不支持数组, 但是Bash是支持数组的 ,不过,只支持一维数组,不支持多维数组。
通常,数组
分为2
种:索引数组
和关联数组
。
Bash既支持索引数组
也支持关联数组
。
语法:
variable=(value0 value1 value2 value3)
注意:
示例:
#!/bin/bash
names=('liufupin' 'wangjing' 'shenfeifei' 'chengxiaonan')
语法:
ArrayName[index]=VALUE
ArrayName[key]=VALUE
示例1:
#!/bin/bash
names[0]='liufupin'
names[1]='wangjing'
names[2]='shenfeifei'
names[3]='chengxiaonan'
示例2:
#!/bin/bash
environ['PATH']='a'
environ['HOME']='b'
environ['SHELL']='c'
environ['PWD']='d'
格式:
${ArrayName[index]}
${ArrayName[key]}
当index=@
或index=*
时候,可以将该数组
转换为List。
示例:
#!/bin/bash
names=('liufupin' 'wangjing' 'shenfeifei' 'chengxiaonan')
for name in ${names[*]}
do
echo $name
done
实际上,完全没必要使用数组
,上面的代码使用数组
反而更复杂了,使用List反而更简单:
#!/bin/bash
for name in liufupin wangjing shenfeifei chengxiaonan
do
echo $name
done