Ich möchte so etwas machen:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Wie soll ich das machen
bash
shell-script
exit-status
Michelemarcon
quelle
quelle
Antworten:
Diese sollten das tun, was Sie brauchen:
oder
quelle
||
nicht auf die Ausgabe des erstenecho
Befehls schaue .Just try whoami && whoami && echo success || echo epic fail
und jetztwhoami && whoareyou && echo success || echo epic fail
. Ich kann nicht herausfinden, was Sie mit "Nicht auf die Ausgabe des erstencmd1 && cmd2
Petr Uzel ist genau richtig, aber Sie können auch mit dem magischen Geld spielen.
$? Enthält den Exit-Code des zuletzt ausgeführten Befehls. Wenn Sie diesen verwenden, können Sie Ihre Skripte sehr flexibel schreiben.
Diese Frage berührt dieses Thema ein wenig, Best Practice zu verwenden $? in der Bash? .
Dann können Sie auch auf verschiedene Exit-Codes reagieren und verschiedene Dinge tun, wenn Sie möchten.
quelle
Der Pseudocode in der Frage entspricht nicht dem Titel der Frage.
Wenn jemand tatsächlich wissen muss, wie Befehl 2 ausgeführt wird, wenn Befehl 1 fehlschlägt, ist dies eine einfache Erklärung:
cmd1 || cmd2
: Dies wird ausgeführtcmd1
, und im Falle eines Fehlers wird es ausgeführtcmd2
cmd1 && cmd2
: Dies wird ausgeführtcmd1
, und im Erfolgsfall wird es ausgeführtcmd2
cmd1 ; cmd2
: Dies wird ausgeführtcmd1
, und dann wird es ausgeführtcmd2
, unabhängig vom Fehlschlagen oder Erfolg der Ausführungcmd1
.quelle