
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
서로 다르게 인용된 여러 섹션을 함께 묶어 하나의 단어를 만들 수도 있습니다. 이 경우:
grep -F '$_SESSION'"['index']" -ri .