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
Shell 展开单引号外壳脚本中的变量_Shell - Fatal编程技术网

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}'"}]'