/ etc / crontab 파일에서 "SHELL"변수를 정의했습니다.
[martin@martin ~]$ grep SHELL /etc/crontab
SHELL=/usr/local/bin/bash
[martin@martin ~]$ file /usr/local/bin/bash
/usr/local/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped
[martin@martin ~]$
또한 / etc / crontab 파일의 모든 스크립트는 "martin"사용자로 시작됩니다. 그러나 /home/martin/.bash_profile (로그인 쉘의 경우) 및 /home/martin/.bashrc (비 로깅 쉘의 경우)에는 cron 작업의 경우 무시되지만 일부 시스템에 로그인 할 때 사용되는 일부 변수가 포함됩니다 SSH 또는 새 bash 세션을여십시오. 왜 cron이 그 변수를 무시합니까? cron은 단순히 "martin"사용자에 대한 권한으로 "/ usr / local / bin / bash my-script.sh"를 실행하지 않습니까?
.bashrc
있습니다 실행을 중지 라인 (non-interactive) 형 모드 쉘에 있습니다.