shell 变量四 获取字符串, 数组, map 长度

获取key和长度

获取是被使用过的; 没有使用过的则不会输出;

数组对应使用过的下标; map则对应keys;

注: 数组就是特殊的map;比如长度的获取和key的获取, 结果和map一模一样;

数组

idx=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=
idx=10
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=
echo ${!AAA[@]}
"
$ ./test.sh 
1 2 3 4 5 10 11 12 13
"
可以看到数组使用过的才输出;

集合

declare -A maps=([hello]=world [good]=job)
echo ${!maps[@]}

"
$ ./test.sh
hello good
"

普通变量0或未定义变量null

echo ":${!PATH[@]}:${!NOT_EXIST[@]}:"

"
$ ./test.sh
:0::
"

长度: 元素个数数量, 字符串长度或数组长度

元素个数

idx=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=
idx=10
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=1
AAA[idx++]=
echo ${#AAA[@]}

"
$ ./test.sh 
8
"

元素个数和字符串长度

AAA[0]="hello world"
echo ${#AAA[@]}:${#AAA[0]}

"
$ ./test.sh 
1:11
"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值