
-F
一致させるためにPHP変数にパラメータを使用しようとしています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
いくつかの異なる引用の一部を集めて単語を作成することもできます。この場合:
grep -F '$_SESSION'"['index']" -ri .