将Shell命令的输出分配给变量

时间:2016-05-12 18:28:47

标签: linux shell

我想将shell命令的输出分配给变量。

如果我直接回显命令,代码将正确执行

for ((i=0; i<${#result[@]}; i++)); do
        echo ${result[$i]} | awk '{print $1}'
        done

但是,如果我将它分配给变量

    size=`${result[$i]} | awk '{print $1}'`
    echo $size

或者

size=$(${result[$i]} | awk '{print $1}')
echo $size

他们没有工作。

任何人都可以给我一些建议来解决它吗?

1 个答案:

答案 0 :(得分:4)

您错过了echo

size=$(echo ${result[$i]} | awk '{print $1}')

此处echo的输出作为输入传递给awk

$()或后退滴答只是运行命令并将其分配给变量,所以当你写的时候

${result[$i]} | awk '{print $1}'

它不会给你任何东西,因为没有任何东西作为awk命令的输入传递。