操纵字符串中的单引号

时间:2018-08-26 06:12:20

标签: shell sh

我在shell脚本下运行

     var1="'"
    json_variable=$var1{"id":158,"name":"stackoverflow"}$var1
    echo $json_variable

我的输出低于

'{id:158,name:stackoverflow}'

如何获取以下格式的输出

'{"id":158,"name":"stackoverflow"}'

谢谢

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找:

json_variable="'{\"id\":158,\"name\":\"stackoverflow\"}'"

或者您想要

json_variable="'"'{"id":158,"name":"stackoverflow"}'"'"

json_variable=\''{"id":158,"name":"stackoverflow"}'\'

read json_variable << \EOF
> '{"id":158,"name":"stackoverflow"}'
> EOF

答案 1 :(得分:0)

我不确定为什么在输出中特别需要单引号,但是您的根本问题是您的作业从不将双引号放在首位。首先,使用

正确引用双引号
json_variable='{"id":158,"name":"stackoverflow"}'

然后,将单引号添加到echo命令中:

echo "'$json_variable'"

可以使用相同的技巧在值中添加单引号,而不必担心复杂的报价方案。

json_variable="'$json_variable'"