shell脚本中的数组常见使用方式

shell脚本中的数组常见使用方式,第1张

shell中数组的定义是使用 小括号来表示的,其中数组元素之间用空格作为分隔,比如:

a. 访问特定的数组元素,比如访问第2个元素,那么利用下标index=1进行访问: index支持负值,表示从后向前访问, 第一个元素的index =0, 如果从后向前,那么最后一个元素index 可以表示为index=-1.

b. 访问所有的数组元素,这时候index 用* 表示就可以了;如下:

c. 获取数组元素的个数:

在上述获取所有元素的前面加上一个# 就可以了,如下:

a. 根据index 进行修改:

b. 追加元素到数组中:

当数组名称中含有shell变量的时候,此时随着shell变量的变化,那么引用的数组自然也就不同;此时可以通过如下的方式实现 变量的嵌套:

嵌套变量有两个$符号,一个用来组合成完整的变量名称,另一个用于 标记组合后的内容是一个变量,而后一个$符号需要用 单引号括起来,剩余的部分需要用双引号括起来;然后用echo 来显示这个变量,但因为 单引号 引用的字符不会被shell解释,所以输出结果是单引号,此时用eval 来调用echo 语句就可以实现解析了;具体实例如下:

首先要告诉大家,Bash Shell 只支持一维数组,而且初始化的时候不用定义数组的大小。

(一) 定义数组,方法1:使用小括号赋值

            array1=(A B C D)或者array1=("A" "B" "C" "D")

            定义数组,方法2:使用数组下表挨个赋值

            array2[0]=a

            array2[1]=b

            可能会有朋友会问问什么不用declare声明也能用,在这跟大家拓展下,所有变量不用显式定义都能用作数组,所以用不用declare声明都可以

(二) 读取数组

            ${array[下标值]},例如:${array1[2]}

            若要获取数组中全部的值,使用${array[*]}或者${array[@]}

(三) 获取数组长度   ${#array1[*]},关键在加了个#

(四) 删除数组内容元素  unset ${array1[下标]} ,删除整个数组   unset array1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11616908.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存