saída diferente quando o script é executado manualmente e o cron job

0

O script abaixo insere o loop if somente se o tamanho da matriz for zero. Quando o script é executado manualmente, o script fornece a saída correta. Mas quando eu corro o mesmo script usando o cronjob. Por padrão, ele está executando o loop 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 
    
por Emelyn DSilva 13.12.2016 / 13:17

1 resposta

1

Quando você executa um cron job, geralmente é uma prática recomendada especificar o caminho completo dos arquivos. Muito provavelmente o problema está aqui:

printf "%s\n" "${var[@]}" > filename.txt

Se você tentar redirecionar a saída para /apps/lp/Start_Services/scm/filename.txt, é provável que você obtenha a saída adequada.

    
por 13.12.2016 / 13:26