script -e e crontab ou em

1

Eu tenho um script que quero rodar via e uso script para capturar uma transcrição. O script -e foi introduzido no util-linux-ng 2.18 e retorna o retval do processo filho.

Eu quero capturar o valor de retorno do comando que eu executo por meio do script e reagir de acordo.

$ cat /tmp/b.sh 
#!/bin/bash

script -qea /tmp/out.txt -c asdfl

if [ $? -eq 0 ]; then
    touch /tmp/RET0
else
    touch /tmp/RETNOT0
fi

$ /tmp/b.sh 
bash: asdfl: command not found
$ ls /tmp/RETNOT0 
/tmp/RETNOT0

Espero o resultado acima porque "asdf1" não é um comando válido.

No entanto, se eu executar o mesmo script de shell em ou crontab, o valor de retorno será zero.

$ crontab -l
40 17 * * * /tmp/b.sh

$ ls /tmp/RET0 
/tmp/RET0

Alguém pode me ajudar a entender por que isso acontece e como posso obter o valor de retorno correto?

    
por COMPUTERUSER 30.06.2011 / 22:06

0 respostas