Приведенный ниже сценарий входит в цикл if, только если размер массива равен нулю .. Когда сценарий выполняется вручную, он дает правильный результат. Но когда я запускаю тот же скрипт с помощью cronjob. По умолчанию он выполняет цикл else.
printf "%s\n" "${var[@]}"
if [ ${#var[@]} == 0 ];then
echo "empty"
#mailx -s "ALL RUNNING" e.nolan.mit@mobily.com.sa < /apps/lp/Start_Services/running.txt
else
echo "else part"
printf "%s\n" "${var[@]}" > filename.txt
mailx -r scm.admin@mobily.com.sa -s "RHINE1 10.14.11.77 LOYALTY SERVER" e.nolan.mit@mobily.com.sa < /apps/lp/Start_Services/scm/filename.txt
echo "I am here"
fi
Обычно при выполнении задания cron рекомендуется указывать полный путь к файлам. Скорее всего, проблема здесь:
printf "%s\n" "${var[@]}" > filename.txt
Если вы попытаетесь перенаправить вывод в /apps/lp/Start_Services/scm/filename.txt, скорее всего, вы получите правильный вывод.