
PHP 変数と一致させる-F
ために、パラメータを使用しようとしています。以下を実行すると、grep
grep -F "$_SESSION['index']" -ri .
ただし、一致するのは:
['index']
これを にも一致させるにはどうしたらよいでしょう$_SESSION
か。 は$_SESSION
存在しない環境変数として読み取られ、 はgrep
として読み取られるのでしょうか['index']
。 によってプレーン テキストとして読み取られると思いましたが-F
、それによって正規表現の動作がオフになるだけかもしれません。
これが動作の場合、どうすればいいでしょうか? PHP は単一引用符を使用してカプセル化するため、シェルでのエスケープが失敗するため、単一引用符を使用できません。
grep -F '$_SESSION[\'index\']' -ri .
答え1
grep -F
シェルの解析を回避しません。
二重引用符内では、ドル記号をエスケープします。
grep -F "\$_SESSION['index']" -ri .
一重引用符には、他の一重引用符を除いて何でも含めることができます (エスケープ文字はありません)。ただし、引用符で囲まれた文字列は、エスケープされた引用符で連結できます。
grep -F '$_SESSION['\''index'\'']' -ri .
答え2
複数の異なる引用セクションをまとめて 1 つの単語にすることもできます。次の例をご覧ください。
grep -F '$_SESSION'"['index']" -ri .