printf '%s' 'abc' | sed 's/./\\&/g' #1, \a\b\c
printf '%s' "`printf '%s' 'abc' | sed 's/./\\&/g'`" #2, &&&
に変換し、それが\a\b\c
を印刷する必要がありますので、私たちは、printf '%s' "\a\b\c"
を持っています。 私の質問です:なぜ2番目のスクリプト&&&
を印刷しますか?二重のバックスラッシュを単一のバックスラッシュ二バッククォート内の式は<code>abc</code>返し
注:2つ目のスクリプトの作業(print \a\b\c
)は、各バックスラッシュの前に別のバックスラッシュを付けることで取得できますが、なぜそれが必要なのかわかりません。
つの関連質問: why does this single quoted string get interpreted when it's inside of a command substitution
'printf '%s'" $(printf '%s' 'abc' | sed 's /./\\&/g') ''細かいbtwを動作させます。 – anubhava
@anubhavaうわー、本当にそうです。だから、バックスティックは私が推測するいくつかの奇妙な副作用があります。 – pdg
はい、逆戻りは吸います。実際に使用する理由はありません。あなたの問題に関する詳細はこちらhttp://mywiki.wooledge.org/BashFAQ/082 – 123