![스크립트 및 cron 작업을 수동으로 실행할 때 다른 출력](https://linux55.com/image/100792/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%B0%8F%20cron%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20%EB%8B%A4%EB%A5%B8%20%EC%B6%9C%EB%A0%A5.png)
아래 스크립트는 배열 크기가 0일 때만 if 루프를 입력합니다. 스크립트를 수동으로 실행하면 올바른 출력이 제공됩니다. 하지만 cronjob을 사용하여 동일한 스크립트를 실행할 때. 기본적으로 else 루프를 실행합니다.
printf "%s\n" "${var[@]}"
if [ ${#var[@]} == 0 ];then
echo "empty"
#mailx -s "ALL RUNNING" [email protected] < /apps/lp/Start_Services/running.txt
else
echo "else part"
printf "%s\n" "${var[@]}" > filename.txt
mailx -r [email protected] -s "RHINE1 10.14.11.77 LOYALTY SERVER" [email protected] < /apps/lp/Start_Services/scm/filename.txt
echo "I am here"
fi
답변1
cron 작업을 실행할 때 일반적으로 파일의 전체 경로를 지정하는 것이 가장 좋습니다. 가장 가능성이 높은 문제는 다음과 같습니다.
printf "%s\n" "${var[@]}" > filename.txt
출력을 /apps/lp/Start_Services/scm/filename.txt로 리디렉션하려고 하면 올바른 출력을 얻을 수 있습니다.