我需要能够使用${var}
保留命令所需的单引号。
我曾尝试通过串联'"${var}"'
来转义单引号,但由于未保留单引号,命令给出了错误。
$COMMAND '[{"name": "john", "tel": ${var}}]'
答案 0 :(得分:0)
我认为您的命令不需要“要求”该JSON周围的单引号
串。这是一个需要他们处理整个JSON的外壳
字符串作为单个单词并将其传递给$COMMAND
。
有2种在JSON字符串中使用它的方式(我将var
设置为999):
$ echo command "[{\"name\": \"john\", \"tel\": ${var}}]"
command [{"name": "john", "tel": 999}]
或:
$ echo command '[{"name": "john", "tel": '"${var}"'}]'
command [{"name": "john", "tel": 999}]
但是,如果您的命令确实需要用单引号引起来的JSON字符串,请执行以下操作:
"'[{\"name\": \"john\", \"tel\": ${var}}]'"
此外,可能不需要[
和]
:
"{\"name\": \"john\", \"tel\": ${var}}"
答案 1 :(得分:0)
除了“ $ {var}”外,您都应该引用它。
var=999
$COMMAND '[{"name": "john", "tel": "'${var}'"}]'