用shell脚本中的反斜杠双引号替换双引号

时间:2013-08-14 09:56:06

标签: shell

我在做 P = $ {P // \ “/ \\”}

我的期望是

"stackoverflow" is awesome

更改为

\"stackoverflow\" is awesome

[编辑]

的更新语法仍未运行
#!/bin/sh
erroMsg=": Parse Error: line 2:122 mismatched input 'where' expecting EOF near '\"201305%\"'"
echo $errorMsg
echo ${errorMsg//\"\\\"}
echo $errorMsg

输出是    test.sh:4:test.sh:错误替换

2 个答案:

答案 0 :(得分:14)

参见示例:

$ P='"stackowerflow" is awesome'
$ echo $P                       
"stackowerflow" is awesome
$ echo ${P//\"/\\\"}            
\"stackowerflow\" is awesome

要转义\,您必须使用\\

要转义",您必须使用\"

要逃避\",您必须使用两者的组合:\\\"

答案 1 :(得分:1)

几乎正确:P=${P//\"/\\\"} - 您错过了\