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 に答える