shell数组使用经验总结

ref:http://www.softfz.com/zxxw/6710/
最近在看Shell脚本编程相关的内容,刚好看到数组这块,相对C数组有很多更灵活的用法,现总结如下:

1、定义数组时,不需要指定数组的长度,可以直接定义数组名然后通过初始化来表明数组的元素个数,初始化时需要注意元素之间是用空格隔开,而不是像

C一样用逗号隔开,元素是放在括号()里,而不是放在{}里面.

array=(1 2 3);

2、不同于C语言的数组,shell脚本中的数组的长度是不固定的,我们往数组中添加元素的时候不需要考虑空间不足的问题,访问数组元素时,就算我们访问的元素不存在,也不会出现像C那样的数组越界问题。

3、如果从C的角度出发,数组中的元素类型应该是一致的,而在shell中,数组中的元素类型可以是不同类型的。即可以将不同类型的变量放在同个数组中

4、在shell中,可以将一个普通变量直接当做只有一个元素的数组来看待,换句话讲,然后我们可以通过[]运算符往数组中添加元素,需要注意的是,如果数组array里面本来就只有一个元素,我们通过array[2]=10;也可以完成元素的添加,问的时候,也要通过array[2]来访问到,但是这时数组中的元素个数还是2个,并非变成3个,所以从这点将,shell中的数组又有点类似于映射,只不过是关键字为整数。

附加数组操作基本方法:

初始化

ary=(1 2 a "ab c") //用括号完成数组初始化,元素之间用空格隔开,如果元素是包含空格的字符串,则把整个字符串放在""之间

求数组元素个数

${#ary[*]}//可以求出数组元素个数,像上面的例子,得到的个数=4

输出数组中的所有元素

${ary[*]}//得到数组中的所有元素

访问数组中的某个元素

${ary[1]}; //访问第二个元素

ary[0]=3; //修改数组中第一个元素的值;

unset ary[0]; //删除数组中的第一个元素,需要注意的是,通过该方法删除掉第二个元素后,原来存在数组中的元素的下标还是不变的,也就是说如果要访问原来的第二个元素,还是通过ary[1]去访问。

ary=2; //这时需要判断之前ary[0]有没有存在,如果存在,则相当于替换,整个数组的元素个数不会发生变化,如果不存在,则相当于增加一个新的元素到数组中,并且该元素对应的下标是0;整个数组的元素个数同时会加1。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值