【问题标题】:Assign output of a shell command to a variable [duplicate]将shell命令的输出分配给变量[重复]
【发布时间】:2016-09-08 18:04:22
【问题描述】:

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

他们不工作。

我该如何解决?

【问题讨论】:

标签: linux shell


【解决方案1】:

你错过了echo

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

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

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

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

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

【讨论】:

  • 非常感谢您的帮助。我在这里被困了 4 个小时...感谢您提供如此详细的解决方案。
  • 再次感谢您的介绍
猜你喜欢
  • 2014-01-08
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2017-07-21
  • 2021-07-24
  • 2011-08-13
  • 1970-01-01
  • 2021-03-18
相关资源
最近更新 更多