2016-05-12 137 views
1

我想将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 

他们没有工作。

任何人都可以给我一些解决它的建议!

回答

4

你错过了echo

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

这里的echo作为输入传递给awk

输出的$()或反引号只是执行命令,并将其分配给一个变量,所以当你只写

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

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

+1

非常感谢您的协助。我在这里呆了4个小时...... 感谢您提供这种解决方案的详细介绍。 – Ilikeperl

+1

我想再次感谢您的介绍 – Ilikeperl

+1

@Ilikeperl欢迎您:) – nu11p01n73R

相关问题