grep F 參數不完全匹配

grep F 參數不完全匹配

我正在嘗試使用-Fa 上的參數grep來匹配 PHP 變數。當我跑步時:

grep -F "$_SESSION['index']" -ri .

儘管它只是匹配:

['index']

我怎麼才能讓它也匹配$_SESSION?是否$_SESSION被讀取為不存在的環境變數而grep被讀取為['index']?我認為這-F會使其讀取為純文本,也許這只是關閉正則表達式行為。

如果這是這種行為我該怎麼做?我不能使用單引號進行封裝,因為 PHP 使用單引號; shell 中轉義失敗:

grep -F '$_SESSION[\'index\']' -ri .

答案1

grep -F不要避免 shell 解析。

在雙引號內,轉義美元符號:

grep -F "\$_SESSION['index']" -ri .

單引號可以包含其他單引號以外的任何內容 - 沒有轉義字元 - 但是,帶引號的字串可以與轉義引號連接:

grep -F '$_SESSION['\''index'\'']' -ri .

答案2

您也可以將幾個不同引用的部分塞在一起以組成一個單字。在這種情況下:

grep -F '$_SESSION'"['index']" -ri .

相關內容