私はLinuxでbashを使用しています。
$ A=\"\"
$ grep $A
nomatch
""
"" <- (returned by grep)
$ grep ""
imatcheverything
imatcheverything <- (returned by grep)
grep $A
私はそのように行動すると予想されたgrep ""
。文字通り一致するのはなぜですか""
?grep
たとえば、(私が知っている限り)シェルgrep \\\\
は最初にシェルを見てからgrep \\
。行が含まれています\
。
私はこれがシェルが変数を置き換えて引用符を見る順序に関連していると思います。この動作は、変数置換フェーズの前にシェルが引用符を削除した場合に説明できます。
無関係なメモでは、私は比較的複雑な正規表現(書き込みではなく読み取り、理想的には「この正規表現の機能は何ですか?」と尋ねること)を持つリソースを探しており、BREまたはEREが望ましいです。