El parámetro Grep F no coincide completamente

El parámetro Grep F no coincide completamente

Estoy intentando usar el -Fparámetro en a greppara que coincida con una variable PHP. Cuando corro:

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

aunque solo coincide:

['index']

¿Cómo puedo hacer que también coincida con $_SESSION? ¿Se $_SESSIONlee como una variable de entorno inexistente y se greplee como ['index']? Pensé que -Flo haría leer como texto sin formato, aunque tal vez eso simplemente desactive el comportamiento de expresiones regulares.

Si ese es el comportamiento, ¿cómo puedo hacer esto? No puedo usar comillas simples para la encapsulación porque PHP usa single para su; escapar falla en Shell:

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

Respuesta1

grep -Fno evita el análisis de shell.

Entre comillas dobles, escape el signo de dólar:

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

Las comillas simples pueden contener cualquier cosa excepto otras comillas simples (no hay ningún carácter de escape); sin embargo, la cadena entrecomillada se puede concatenar con comillas escapadas:

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

Respuesta2

También puedes juntar varias secciones citadas de forma diferente para formar una palabra. En este caso:

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

información relacionada