bash中的数组

很多Shell中不支持数组, 但是Bash是支持数组的 ,不过,只支持一维数组,不支持多维数组。

通常,数组分为2种:索引数组关联数组

Bash既支持索引数组也支持关联数组

1.1、数组的定义
1.1.1、索引数组的定义

语法:

variable=(value0 value1 value2 value3)

注意:

  • 使用的是小括号,不是大括号,也不是中括号。
  • 元素之间用空格隔开,不是用","隔开

示例:

#!/bin/bash

names=('liufupin' 'wangjing' 'shenfeifei' 'chengxiaonan')
1.1.2、关联数组的定义

语法:

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'
1.2、数组元素的引用

格式:

${ArrayName[index]}
${ArrayName[key]}

index=@index=*时候,可以将该数组转换为List

示例:

#!/bin/bash

names=('liufupin' 'wangjing' 'shenfeifei' 'chengxiaonan')

for name in ${names[*]}
do
   echo $name
done
1.3、数组的必要性

实际上,完全没必要使用数组,上面的代码使用数组反而更复杂了,使用List反而更简单:

#!/bin/bash

for name in liufupin wangjing shenfeifei chengxiaonan
do
   echo $name
done