bash shell 支持两种数组,一种是普通数组,即以数字作为下标索引;另一种是关联性数组,下标索引可以是字符串(需 bash 4.0 及以上)。
声明一个数组:myarray=(1 3 5 7 9 11)
myarray2[0]="welcome"
myarray2[1]="to"
myarray2[2]="www."
myarray2[3]="groad."
myarray2[4]="net" 打印数组内容:
[Bash shell] 纯文本查看 复制代码 #!/bin/sh
myarray=(1 3 5 7 9 11)
for i in {0..5}
do
echo -n ${myarray[$i]}
echo -n " "
done
echo ""
myarray2[0]="welcome"
myarray2[1]="to"
myarray2[2]="www."
myarray2[3]="groad."
myarray2[4]="net"
echo -n ${myarray2[0]}
echo -n " "
echo -n ${myarray2[1]}
echo -n " "
for i in {2..4}
do
echo -n ${myarray2[$i]}
done
echo ""
运行输出:
上面用 for 循环遍历了数组并打印出各个元素,但是有一种更加简洁的方法,及使用 * 符号通配符:也可以用 @ 符号来替代 * 符号:
统计数组的长度也很方便,方法如下:
上面定义了普通数组,下面声明关联数组(associative arrays),关联数组在 bash shell 4.0 及以上版本获得支持。
声明一个关联数组首先需要用 declare 命令的 -A 选项来声明该数组的名字,如 declare -A myarr ,如:
[Bash shell] 纯文本查看 复制代码 #!/bin/sh
declare -A myarr
myarr=([flower]=rose [fruit]=appale)
echo ${myarr[flower]}
echo ${myarr[fruit]}
运行输出:$ sh myarr.sh
rose
appale
列出关联数组中的所有元素:
列出关联数组中的所有索引:也可以使用 @ 符号替代 * 符号,效果一样: |