저는 crontab을 통해 자동 백업을 생성하는 BASH 스크립트를 개발 중입니다. 나는 사용하려고
myVARIABLE=`grep backup /etc/crontab`
항목을 입력한 경우 "backup"이 포함된 행이 반환됩니다. 행을 반환하는 대신 /etc/crontab
여러 ls 명령의 출력을 반환하는 것 같습니다 . 나는 명령을 실행했다
grep backup /etc/crontab
명령줄에서는 예상대로 작동합니다. BASH 스크립트를 통해 다른 파일을 grep할 수도 있으며 예상된 결과도 반환합니다. /etc/crontab
이것이 스크립트에서 grep 문제를 일으키는 이유에 대한 아이디어가 있습니까? 감사해요!
답변1
*
이는 /etc/crontab에 이스케이프되지 않으면 쉘에 의해 확장되는 별표 문자( )가 포함되어 있기 때문입니다 .
다음 두 명령의 출력을 비교하십시오.
echo $myVariable
echo "$myVariable"
첫 번째 명령은 이스케이프되지 않은 변수를 사용하므로 별표 문자는 현재 디렉터리의 모든 파일로 확장됩니다. 두 번째 명령은 원하는 것, 즉 crontab 파일의 실제 내용입니다.