将值存储到 Shell 脚本中的变量

Store value to variable in Shell script

"$emails" 有值数组,我想从中解析值,为此,我正在使用 jq。如果我执行以下命令

echo "$emails" | ./jq '.total_rows'

我可以获得值,即 4,我想将返回的结果存储到某个变量中,

total_rows="$emails" | ./jq '.total_rows'

但 total_rows 没有价值。

echo $total_rows

如何将返回结果存储到变量中?

你必须使用正确的引用,像这样:

total_rows=`echo "$emails" | ./jq '.total_rows'`

`` 将执行命令并赋予 total_rows 它的值,因此无论

的输出是什么
echo "$emails" | ./jq '.total_rows'

将存储在 total_rows

正如 Tom Fenech 在评论中提到的,最好使用 $() 进行命令替换。它提供了更好的可读性。所以你可以做的是:

total_rows=$(echo "$emails" | ./jq '.total_rows')