Shell 展开单引号外壳脚本中的变量
我需要能够使用Shell 展开单引号外壳脚本中的变量,shell,Shell,我需要能够使用${var}并根据命令要求保留单引号。 我已经尝试通过连接“${var}”来转义单引号,但是命令给出了错误,因为单引号没有得到保留 $COMMAND '[{"name": "john", "tel": ${var}}]' 我认为您的命令不需要在JSON周围加上单引号 一串这是一个shell,需要它们处理整个JSON 字符串作为单个单词,并将其传递给$COMMAND 有两种方法可以在JSON字符串中使用它(我将var设置为999): 或: 但是,如果您的命令确实需要用单引号括起来的
${var}
并根据命令要求保留单引号。
我已经尝试通过连接“${var}”
来转义单引号,但是命令给出了错误,因为单引号没有得到保留
$COMMAND '[{"name": "john", "tel": ${var}}]'
我认为您的命令不需要在JSON周围加上单引号 一串这是一个shell,需要它们处理整个JSON 字符串作为单个单词,并将其传递给
$COMMAND
有两种方法可以在JSON字符串中使用它(我将var
设置为999):
或:
但是,如果您的命令确实需要用单引号括起来的JSON字符串,请执行以下操作:
"'[{\"name\": \"john\", \"tel\": ${var}}]'"
另外,[
和]
可能不需要:
"{\"name\": \"john\", \"tel\": ${var}}"
除了“${var}”之外,您应该引用这个
是的,我尝试过使用双引号,但它不起作用,因为命令给出了解析错误。命令要求数组在单个qote中引用,当我连接变量
“${var}”
时,我丢失了单引号,所以我得到了解析错误,我希望能够保留单引号并使用变量来工作,它需要精确地命令'[{“name”:“john”,“tel”:999}'
如果没有单引号,解析错误结果会是“[{“name\”:“john\”,\“tel\”:${var}]'
正常吗?错误:错误解析JSON:'[{“name”:“john”,“tel”:“:.0680000”]“
虽然保留了单引号,但我得到了相同的解析错误。我不知道您的命令在做什么。你能把它贴在这里吗?为什么你的电话以
开头,不应该是一个号码吗?
"'[{\"name\": \"john\", \"tel\": ${var}}]'"
"{\"name\": \"john\", \"tel\": ${var}}"
var=999
$COMMAND '[{"name": "john", "tel": "'${var}'"}]'