繁体   English   中英

在命令替换中使用变量被解释为命令[重复]

[英]Using variable inside command substition is being interpreted as a command [duplicate]

我正在尝试使用另一个变量的管道 output 设置一个新变量,但它不起作用。 我的语法有什么问题?

使用命令替换$()

a="{\"a\": 1}"
echo $a
# output is: {a: 1} 
echo $a | jq '.a'
# output is: 1
b=$($a | jq '.a')
# error: {"a":: command not found

没有命令替换

b=$a | jq '.a'
# b is empty

jq可以在不使用echo<<<here-string的情况下处理包含在变量中的 JSON 。

#!/usr/bin/env bash

a='{"a": 1}'
echo "$a"
# output is: {a: 1} 
jq -n "$a | .a"
# output is: 1
b=$(jq -n "$a | .a")
# b=1
echo "$b"
# output is: 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM