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?