Skript -e und Crontab oder bei
358
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?
0 Antworten auf die Frage
Verwandte Probleme
-
3
Wie kann ich eine Verzeichnisstruktur "invertieren"?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
7
Starten Sie den Synergy-Client beim Booten in Mac OS X
-
4
Wie synchronisieren Sie GreaseMonkey-Skripts zwischen Computern?
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
1
Kann ich ein Skript schreiben, das Benutzer automatisch wechselt?
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet
-
8
Benennen Sie eine Gruppe von Dateien mit einem Befehl um
-
5
Warum friert die Uhr im Infobereich ein?