Shell数组总结

一、定义: 

  • 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小
  • 数组元素的下标由0开始
  • Shell 数组用括号来表示,元素用”空格”符号分割开

1、直接定义整个数组 

语法格式:array_name=(value1 value2 … valuen)

例如: 

my_array=(A B “C” D)

 2、使用下标来定义数组:

array_name[0]=value0 
array_name[1]=value1 
array_name[2]=value2

 二、读取

  • 1、读取单个值的格式为:${array_name[index]}
my_array=(A B "C" D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"

执行结果为

第一个元素为: A

第二个元素为: B

  • 2、使用@ 或 * 获取数组中所有元素:${array_name[*]} 或者${array_name[@]}
my_array=(A B "C" D)
echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

#执行脚本,输出结果如下所示:
#数组的元素为: A B C D 
#数组的元素为: A B C D
  • 3、获取数组长度: ${#array_name[*]} 或者 ${#array_name[@]}
my_array=(A B "C" D)
echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

#执行脚本输出结果如下
#数组元素个数为: 4
#数组元素个数为: 4

三、遍历

  • 1、标准for循环遍历
array=( A B C D 1 2 3 4)
for(( i=0;i<${#array[@]};i++)) ; do
    #${#array[@]}获取数组长度用于循环
    echo ${array[i]};
done;
  • 2、for ... in遍历,不使用数组下标
array=(A B C D 1 2 3 4)
for element in ${array[@]}
#也可以写成for element in ${array[*]}
do
    echo $element
done
  • 3、for ... in遍历,使用数组下标
array=( A B C D 1 2 3 4)
for i in "${!arr[@]}";   
do   
    printf "%s\t%s\n" "$i" "${arr[$i]}"  
done  
  • 4、while循环遍历
array=( A B C D 1 2 3 4)
i=0  
while [ $i -lt ${#array[@]} ]  
#当变量(下标)小于数组长度时进入循环体
do  
    echo ${ array[$i] }  
    #按下标打印数组元素
    let i++  
done  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值