我想将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
他们没有工作。
任何人都可以给我一些建议来解决它吗?
答案 0 :(得分:4)
您错过了echo
size=$(echo ${result[$i]} | awk '{print $1}')
此处echo
的输出作为输入传递给awk
$()
或后退滴答只是运行命令并将其分配给变量,所以当你写的时候
${result[$i]} | awk '{print $1}'
它不会给你任何东西,因为没有任何东西作为awk
命令的输入传递。