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