bash数组定义

来源:互联网 发布:进出口数据统计 编辑:程序博客网 时间:2024/05/21 03:56

如果用标准的*NIX shell将不能使用bash的数组特性。虽然在Perl, Python, PHP及其他高级语言中数组已经不是一个强大的功能,但数组使用还是相当广泛。
BASH只支持一维数组,但参数个数没有限制。
声明一个数组:
declare -a array

如果没有声明,按数组方式直接赋值给变量,BASH也认作数组:
(1) array=(var1 var2 var3 ... varN)
(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)
(3) array[0]=var1
    arrya[1]=var2
    ...
    array[n]=varN

数组用法说明:
${array[n]}                     # 引用数组
${array[*]} 或${array[@]}       # 数组所有成员
${!array[*]} 或${!array[@]}     # 数组所有下标
${#array[*]} 或${#array[@]}     # 数组元素个数
${#array[0]}                    # 数组第一个成员的长度

例如:
 
# COLOR=("red" "green" "yellow" "blue" [5]="orange")

# echo ${#COLOR[*]}
5

# echo ${!COLOR[*]}
0 1 2 3 5

# for item in ${COLOR[*]}
> do
>     printf "   %s/n" $item
> done

   red
   green
   yellow
   blue
   orange
 
# for index in ${!COLOR[*]}
> do
>     printf "   %d/n" $index
> done

   0
   1
   2
   3
   5

注意数组下标可以有间断,上面的例子就缺少下标4,可以用单个数组元素赋值方法补上:
# COLOR[4]="violet"

# echo ${!COLOR[*]}
0 1 2 3 4 5