Shell数组小手册

这篇博客详细介绍了Shell数组的构建和访问方法,包括直接定义数组、从字符串构建数组、数组遍历等,特别强调了如何处理不同分隔符的字符串以及遍历数组的不同方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell数组小手册

本文涉及内容:直接构建数组,从字符串构建数组,分隔字符串构建数组,数组大小,以及遍历数组。

数组的构建

shell数组依然从0开始,不用申明大小,可以通过下面的方式直接定义一个数组变量。

arr[0]=1
arr[1]='hello'
arr[10]=3.1415   ## 虽然是下标为10,但数组大小依然为3.

数组的访问

echo ${arr[0]}
1
echo ${arr[1]}
hello
echo ${arr[2]}  # 下标2下没有元素
 
echo ${arr[10]}
3.1415
echo ${arr[@]}  # 获得数组所有元素的行展示
1 hello 3.1415 
echo ${#arr[@]} # 获得数组的大小, 这里注意一下
3

从字符串构建数组

  • 通过括号中,已空格分隔的几个元素,来构建数组。
arr=(1 2 3 'hello' 4 5 3.1415)
## 或者从一个字符串变量
str='1 2 3 'hello' 4 5 3.1415'
arr=($str)
  • 从其他分隔符的字符串中构建数组
    思路就是先将字符串搞成以空格分隔的字符串
str='1,2,3,4,5'
str2=${str//,/ }  #将str的,换成空格
arr=($str2)
echo ${arr[@]}

数组的遍历

  • 通过下标遍历,${#array[@]}是数组大小,需要注意的是这种方法无法处理上面下标直接到10的情况。
for(( i=0;i<${#array[@]};i++)) 
do
    echo ${array[i]};
done;
  • range for的形式
for element in ${array[@]} 
do
    echo $element
done
  • 用while 达到类似的效果
i=0  
while [ $i -lt ${#array[@]} ]  
do  
    echo ${ array[$i] }  
    let i++    ##变量自增需要通过 let
done  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值