我想执行一个命令,将结果存储在一个数组中,并知道它的大小。问题是当我将命令结果分配给一个数组时,即使命令没有返回结果,它也会显示大小为1。
DEVICES=$(some|command)
echo "${#DEVICES[*]}" # Prints 1
但是,如果我手动完成,它可以正常工作:
a=0
for i in $(some|command);
do
a=$((a + 1))
done
echo "$a" # Prints 0
如何将结果分配给变量并具有正确的长度?
答案 0 :(得分:3)
您需要将DEVICES
设为数组。
将DEVICES=$(some|command)
更改为DEVICES=( $(some|command) )
目前它只是一个字符串