스크립트 및 cron 작업을 수동으로 실행할 때 다른 출력

스크립트 및 cron 작업을 수동으로 실행할 때 다른 출력

아래 스크립트는 배열 크기가 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로 리디렉션하려고 하면 올바른 출력을 얻을 수 있습니다.

관련 정보