Shell 单引号内的变量展开

Shell 单引号内的变量展开,shell,variable-expansion,Shell,Variable Expansion,我对shell脚本非常陌生 我有以下脚本: out="FAILURE" curl -X POST -d 'json={"json":"message"}' http://localhost:8888/json.tail.test 我想用$out的值替换“message”。我尝试了不同的方法,但没能做到。有人能推荐我吗?试试这个: out="FAILURE" curl -X POST -d 'json={"json": $OUT}' http://localhost:8888/json.tail

我对shell脚本非常陌生

我有以下脚本:

out="FAILURE"
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/json.tail.test
我想用
$out
的值替换“message”。我尝试了不同的方法,但没能做到。有人能推荐我吗?

试试这个:

out="FAILURE" curl -X POST -d 'json={"json": $OUT}' http://localhost:8888/json.tail.test
您只需将
“message”
替换为
$OUT

执行以下操作:

out="FAILURE"
curl -X POST -d 'json={"json":"'$out'"}' http://localhost:8888/json.tail.test

基本上,将除了
$out
之外的所有内容都用单引号括起来。单引号保护双引号,但抑制变量的扩展,如不会扩展
$out
部分的
$out

。此外,根据OP的要求,
$OUT
的扩展需要在双引号内。请看下面我的答案。