Skript -e und Crontab oder bei

332
COMPUTERUSER

Ich habe ein Shellscript, das ich über ausführen möchte, und benutze ein Skript, um ein Transkript aufzunehmen. script -e wurde in util-linux-ng 2.18 eingeführt und gibt den Rückgabewert des untergeordneten Prozesses zurück.

Ich möchte den Rückgabewert des Befehls, den ich über ein Skript ausführte, erfassen und entsprechend reagieren.

$ 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 

Ich erwarte das Ergebnis oben, weil "asdf1" kein gültiger Befehl ist.

Wenn ich jedoch dasselbe Shell-Skript über at oder crontab ausführen, ist der Rückgabewert Null.

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

Kann mir jemand helfen zu verstehen, warum dies geschieht und wie ich den korrekten Rückgabewert erhalten kann?

1

0 Antworten auf die Frage