Parâmetro Grep F não correspondência completa

Parâmetro Grep F não correspondência completa

Estou tentando usar o -Fparâmetro em a greppara corresponder a uma variável PHP. Quando corro:

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

embora seja apenas correspondente:

['index']

Como posso fazer com que também corresponda ao $_SESSION? O que $_SESSIONestá sendo lido como uma variável de ambiente inexistente e grepé lido como ['index']? Achei que isso -Ffaria com que fosse lido como texto simples, mas talvez isso apenas desative o comportamento regex.

Se esse é o comportamento, como posso fazer isso? Não posso usar aspas simples para o encapsulamento porque o PHP usa single para isso; escapar falha no shell:

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

Responder1

grep -Fnão evita a análise do shell.

Entre aspas duplas, escape do cifrão:

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

As aspas simples podem conter qualquer coisa, exceto outras aspas simples – não há caractere de escape – no entanto, a string entre aspas pode ser concatenada com aspas de escape:

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

Responder2

Você também pode juntar várias seções com citações diferentes para formar uma palavra. Neste caso:

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

informação relacionada