Bash 스크립트의 절대 경로

Bash 스크립트의 절대 경로

myscript.sh와 같은 명령을 호출하는 쉘 스크립트가 있습니다 mycmd. 예를 들어 터미널에서 스크립트를 실행하면 ./myscript.sh모든 것이 잘 작동합니다.

하지만 crontab에 스크립트를 추가하면 출력이 mycmd비어 있습니다. 내가 전화했을 때 /usr/local/bin/mycmd모든 것이 myscript.sh정상으로 돌아 왔습니다.

그렇다면 실행 파일에 대한 절대 경로를 사용해야 하는 이유는 무엇입니까? $PATH"cron-bash"에 없기 때문입니까 ?

답변1

당신 말이 맞습니다. 환경에는 아마도 포함되지 않은 cron환경이 있을 것입니다 . 스크립트의 다음 위치에 디렉터리를 추가하면 이 문제를 해결할 수 있습니다 .PATH/usr/local/bin/PATH

PATH="$PATH:/usr/local/bin/"

그러나 모범 사례 는 (예를 들어) 편리하게 호출되는 악의적으로 설계된 프로그램 cp이 .PATH/bin

관련 정보