'$'가있는 문자열에 대한 명령 줄 grep?
-
12-09-2019 - |
문제
스크립트 디렉토리에서 두 가지 변수가 연결되는 위치를 찾으려고 노력하고 있지만 다음을 시도 할 때 다음을 시도합니다.
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
"정의되지 않은 변수"오류가 발생합니다 ...
나는 다음을 사용하여 $ s를 피할 수 있다고 생각했다.
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
그러나 나는 같은 오류를 얻습니다. 그래서 $ s가있는 문자열에 대해 어떻게 grep합니까?
해결책
TCSH는 일반적인 쉘과 변수에 대해 약간 다르며 FreeBSD의 기본값입니다.
따라서 단일 따옴표 만 사용하십시오. '$VAR'
, 또는 탈출 $
인용문 외에 : \$"VAR"
다른 팁
탈출 한 슬래시와 함께 단일 따옴표로 넣으십시오.
grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *
또한, 도트 (.)는 재 푸트 문자입니다. 원하지 않는 경우, 탈출하십시오 (또는 -e 옵션을 사용하지 마십시오).
여기에 있습니다 좋은 참조 더 일반적인 정보와 함께.
제휴하지 않습니다 StackOverflow