【Bash百宝箱】shell数组

shell支持一维数组,包括普通的使用下标的索引数组和关联的键值对数组,下面以例子说明。

创建一个名为foo的索引数组,三个元素a、bear、123以空格分隔放在圆括号内。

$ foo=(a bear 123)

查看索引数组foo的全部元素(使用特殊符号):

$ echo $foo
a
$ echo ${foo}
a
$ echo ${foo[@]}
a bear 123
 echo ${foo[*]}
a bear 123

查看索引数组foo的所有下标:

$ echo ${!foo[@]}
0 1 2

查看索引数组foo的元素个数:

$ echo ${#foo[@]}
3
$ echo ${#foo[*]}
3

查看索引数组foo某个位置的元素:

$ echo ${foo[0]}
a
$ echo ${foo[1]}
bear
$ echo ${foo[2]}
123
$ echo ${foo[-1]}
123
$ echo ${foo[-2]}
bear
$ echo ${foo[-3]}
a

修改索引数组foo某个位置的元素:

$ foo[1]=dog
$ echo ${foo[1]}
dog
$ echo ${foo[@]}
a dog 123
$ echo ${!foo[@]}
0 1 2
$ echo ${#foo[@]}
3

给索引数组foo添加元素:

$ foo[3]=x
$ echo ${foo[3]}
x
$ echo ${foo[@]}
a dog 123 x
$ echo ${!foo[@]}
0 1 2 4
$ echo ${#foo[@]}
4
$ foo[10]=how
$ echo ${foo[10]}
how
$ echo ${foo[@]}
a dog 123 x how
$ echo ${!foo[@]}
0 1 2 3 10
$ echo ${#foo[@]}
5

删除索引数组foo某个位置的元素:

$ unset foo[1]
$ echo ${foo[@]}
a 123 x how
$ echo ${!foo[@]}
0 2 3 10
$ echo ${#foo[@]}
4

删除索引数组foo:

unset foo

使用命令declare -A创建一个名为bar的键值对数组,三个键分别为r、green、123,对应的值为red、g、88,格式固定,键放在一对方括号中,用等号进行赋值。

$ declare -A bar=([r]=red [green]=g [123]=88)

下面是对键值对数组bar的一些操作:

$ echo ${bar[@]}
g 88 red
$ echo ${!bar[@]}
green 123 r
$ echo ${#bar[@]}
3
$ echo ${bar[r]}
red
$ echo ${bar[green]}
g
$ echo ${bar[123]}
88
$ bar[123]=99
$ bar[x]=app
$ echo ${bar[*]}
g 99 red app
$ echo ${!bar[*]}
green 123 r x
$ echo ${#bar[*]}
4
$ unset bar[r]
$ echo ${bar[*]}
g 99 app
$ echo ${!bar[*]}
green 123 x
$ echo ${#bar[*]}
3
$ unset bar
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值