답변:
예, 이런 식으로 변수를 정의하고 사용할 수 있습니다. 한계가 있습니다 (예시하지 않았 음). =
부호 오른쪽의 문자열 은 문자 그대로 해석되며 선행 공백이 제거되므로 다음과 같은 구문을 사용할 수 없습니다 FOO=$BAR/qux
(예 : PATH=$HOME/bin:$PATH
유용한 것은 수행하지 않음).
이것은 설명서에 나와 있으며 다음을 실행하여 볼 수 있습니다.
man 5 crontab
( 매뉴얼의 섹션 1 man crontab
에있는 crontab
명령 의 설명서 가 표시되어 있으며 섹션 5 의 crontab
파일 형식에 대한 설명서가 필요합니다 .)
Linux crontab은 리터럴 값을 보유하는 일부 변수 정의를 지원하지만 긴 텍스트를 더 짧은 표현으로 압축하거나 전자 메일 출력을 보내는 위치와 같은 cron 자체에 대한 일부를 제어하는 것 외에는 많이 사용되지 않습니다.
유연성은 cron 항목의 명령 부분이 Vixie cron (일반적으로 Linux 시스템에 설치되는)을 사용하는 시스템에서 /bin/sh -c
정의 된 쉘로 전달 되거나 쉘로 전달된다는 것을 이해합니다 SHELL
. 이것이 의미하는 것은 명령 행의 나머지는 간단한 쉘 스크립트입니다. 참고 : 사용중인 쉘을 인식하십시오. 리눅스에서 /bin/sh
일반적입니다 /bin/bash
너무 $( ... )
내장 명령이 작동하지만, 이전 시스템에 어디하지 않을 /bin/sh
경우에만이 이해 `
대신.
예를 들어, 저장된 메시지의 MBX 파일을 매월 보관하고 압축하는 간단한 crontab 줄이 있습니다. 다음과 같이 보입니다 :
15 0 1 * * nf=MailFeed-$( date +\%Y\%m ).mbx && cd Logs && mv MailFeed.mbx $nf && bzip2 -9 $nf
매월 1 일 오전 12시 15 분에 실행되며 CCYYMM으로 새 파일 이름을 설정하고 현재 파일을 새 이름으로 이동하고 압축합니다. 기억해야 할 것은 이스케이프 처리되지 않은 %
(퍼센트 부호)는 개행 문자로 취급되며 그 뒤에 오는 데이터는 퍼센트 부호 앞에 오는 명령으로 stdin으로 전송됩니다. 이것이 법선 date +Y+m
이 date +\%Y\%m
위와 같이 쓰여진 이유 입니다.
cronjob은 cron 항목 만 포함 할 수 없습니다. bash-script를 작성하고 cronjob을 통해 bash-script를 실행하는 옵션이 아닙니까?