Linux 中数组的使用

Linux 中数组的使用

数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开

arr=(1 2 3 4 5)

字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开

arr=(‘a’ ‘b’ ‘c’)

数组的任何元素都可以用${arr[下标]}来引用,花括号是必须的,以避免和路径扩展冲突。

数组的操作

以数值型数组为例:arr=(1 2 3 4 5)

1.计算数组的长度

len=${#arr[*]}
在这里插入图片描述

2、输出所有数组的值

在这里插入图片描述
如果 [下标] 是@或是*,它扩展为arr的所有成员。这两种下标只有在双引号中才不同。在双引号中, n a m e [ ∗ ] 扩 展 为 一 个 词 , 由 所 有 数 组 成 员 的 值 组 成 , 用 特 殊 变 量 I F S 的 第 一 个 字 符 分 隔 数 组 成 员 ; {name[*]}扩展为一个词,由所有数组成员的值组成, 用特殊变量IFS的第一个字符分隔数组成员; name[]IFS{arr[@]}将arr的每个成员扩展为一个词。 如果数组没有成员,${arr[@]} 扩展为空串。

3、输出数组的单个元素值(数组下标值从0开始,所以5值为空)

在这里插入图片描述

4、在shell脚本中数组和read的结合使用

在这里插入图片描述

5、数组结合函数和read一起使用 使用 @ 和 ” @和” @@“以及$*

在这里插入图片描述
结果:
在这里插入图片描述
使用"$*"时
在这里插入图片描述
输出:
在这里插入图片描述

6、来点新的(鬼知道有啥用)

向函数传递的参数是 a r g 1 , 我 们 知 道 不 能 向 函 数 传 递 一 个 数 组 , 而 应 该 是 遍 历 的 数 组 的 值 , 所 以 在 a r g 1 赋 值 这 里 , 不 能 写 a r g 1 = ( arg1,我们知道不能向函数传递一个数组,而应该是遍历的数组的值,所以在arg1赋值这里,不能写arg1=( arg1arg1arg1=({echo m y a r r a y [ ∗ ] ) ) , 这 样 相 当 于 a r g 1 是 一 个 数 组 了 , 而 a r g 1 = {myarray[*]})), 这样相当于arg1是一个数组了,而arg1= myarray[]))arg1arg1=(echo ${myarray[*]})返回的则是1 2 3 4 5单个的输出值;函数的返回同理,返回的是单个的数值,接受的时候加上(),组成数组
在这里插入图片描述
输出:
在这里插入图片描述

7、结合read传递参数型(稍微灵活点,更加不知道有什么鬼用,鸟改哈就阔以啦,估计很少会用这些吧)

在这里插入图片描述

输出:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值