没有结果时,数组变量显示错误的命令结果长度

时间:2015-07-21 13:14:33

标签: arrays bash

我想执行一个命令,将结果存储在一个数组中,并知道它的大小。问题是当我将命令结果分配给一个数组时,即使命令没有返回结果,它也会显示大小为1。

DEVICES=$(some|command)
echo "${#DEVICES[*]}" # Prints 1

但是,如果我手动完成,它可以正常工作:

a=0
for i in $(some|command);
do
    a=$((a + 1))
done
echo "$a" # Prints 0

如何将结果分配给变量并具有正确的长度?

1 个答案:

答案 0 :(得分:3)

您需要将DEVICES设为数组。

DEVICES=$(some|command)更改为DEVICES=( $(some|command) )

目前它只是一个字符串