我想将 shell 命令的输出分配给一个变量。
如果我直接回显命令,代码将正确执行:
for ((i=0; i<${#result[@]}; i++)); do
echo ${result[$i]} | awk '{print $1}'
done
Run Code Online (Sandbox Code Playgroud)
但是,如果我将它分配给一个变量,
size=`${result[$i]} | awk '{print $1}'`
echo $size
Run Code Online (Sandbox Code Playgroud)
或者
size=$(${result[$i]} | awk '{print $1}')
echo $size
Run Code Online (Sandbox Code Playgroud)
他们不工作。
我该如何解决?
你错过了 echo
size=$(echo ${result[$i]} | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
这里的输出echo作为输入传递给awk
在$()或反引号只是执行命令,并将其分配给一个变量,所以当你只是写
${result[$i]} | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
它不会给你任何东西,因为没有任何东西作为输入传递给awk命令。