将多行结果转换为数组
有时通过匹配截取命令获取到的多行内容,需要遍历,首先将要遍历的内容转换为数组,多行内容只需要通过在执行结果 加括号 即可转化为数组。
比如我要获取系统里的磁盘。
ls -1 /sys/block | grep -E '(s|h)d[a-z]+' | sort
输出结果如下
root@Storage:~# ls -1 /sys/block | grep -E '(s|h)d[a-z]+' | sort
sda
sdb
sdc
sdd
sde
sdf
sdg
sdh
sdi
转成数组
disklist=(`ls -1 /sys/block | grep -E '(s|h)d[a-z]+' | sort`)
disklen=${#disklist[@]}
echo $disklen
9
获取数组长度
其实就是获取数组中元素的个数。
利用 @
或 *
,可以将数组扩展成列表,然后使用 #
来获取数组元素的个数,格式如下:
${#array_name[@]}
${#array_name[*]}