Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将值存储到Shell脚本中的变量_Bash_Shell_Jq - Fatal编程技术网

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

Bash 将值存储到Shell脚本中的变量,bash,shell,jq,Bash,Shell,Jq,“$emails”有一个值数组,我想解析其中的值,为此,我使用。如果我按命令做 echo "$emails" | ./jq '.total_rows' 我可以得到值,即4,我想将返回的结果存储到某个变量中 total_rows="$emails" | ./jq '.total_rows' 但总行数没有值 echo $total_rows 如何将返回的结果存储到变量中?您必须使用正确的引号,如下所示: total_rows=`echo "$emails" | ./jq '.total_row

“$emails”有一个值数组,我想解析其中的值,为此,我使用。如果我按命令做

echo "$emails" | ./jq '.total_rows'
我可以得到值,即4,我想将返回的结果存储到某个变量中

total_rows="$emails" | ./jq '.total_rows'
但总行数没有值

echo $total_rows

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

您必须使用正确的引号,如下所示:

total_rows=`echo "$emails" | ./jq '.total_rows'`
``将执行该命令,并给出它的值,因此无论它的输出是什么

echo "$emails" | ./jq '.total_rows'
因此将存储在
总计行中

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

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

谢谢@Nidhoegger。这是可行的,我建议使用
$()
代替backticks来替换命令。另外,在bash中,您可以使用
total_rows=$(./jq.total_rows'注意,您也不能添加空格total_rows=`不起作用