3

我在做 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: 替换错误

4

2 回答 2

17

请参阅示例:

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

要逃脱\,您必须使用\\.

要逃脱",您必须使用\".

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

于 2013-08-14T09:59:36.837 回答
1

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

于 2013-08-14T09:59:17.353 回答