Linux shell 数组解决方案

14 篇文章 0 订阅

Linux shell 数组解决方案 

shell是支持数组使用的,目前只能支持一维数组,但参数个数没有限制。


1、申明一个数组
declare -a array
其实不用申明,按数组方式直接赋值给变量即可,bash 就知道那是数组
 
2、数组赋值
a)array=( var1   var2   var3   ...   varN )
b)array=( [0]=var1   [1]=var2   [2]=var3   ...   [n]=varN )
c)array[0]=var1   array[1]=var2   array[3]=var3   ...   array[n]=varN
 
3、引用数组
echo ${ array[n] } 
n为数组的序号,从0开始
 
4、计算数组元素个数
${ #array[@] } 或者 ${ #array[*] }
bash的特殊参数 @ 和 * 都表示“扩展位置参数,从1开始”,但形式上稍有差异,但在数组里使用好像是可以通用的。
 
5、遍历数组
方法一:for循环
for var in ${ array[@] };
do
echo $var
done
--------------------------------------------
方法二:while循环
i=0
while [ $i -lt ${ #array[@] } ]
do
echo ${ array[$i] }
let i++
done
 
6、应用实例
a)从标准输入读入n个字符串,每次输入的字符串保存在数组 array 里
i=0
n=5
while [ $i -lt $n ];
do
echo "Please input strings... `expr $i + 1`"
read array[$i]
m=${array[$i]}
echo $m
i=`expr $i + 1`
done
b)将字符串里面的字母逐个放入数组,并输出到标准输出
chars='abcdefghijklmnopqrstuvwxyz'
for((i=0;i<26;i++))
do
array[$i]=${chars:$i:1}
echo ${array[$i]}
done
这里,${chars:$i:1} 表示从chars字符串的 $i 位置开始,获取1个字符。如果改成其他数字,如5,就是获取5个字符,以上例为例,结果如下:
abcde
bcdef
cdefg
...
vwxyz
wxyz
xyz
yz
z
出现这种现象的原因是从字符w开始,往后已经不够5个字符了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值