Voglio fare qualcosa del genere:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Come dovrei farlo?
Voglio fare qualcosa del genere:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Come dovrei farlo?
Risposte:
Questi dovrebbero fare quello che ti serve:
cmd1 && cmd2 && echo success || echo epic fail
o
if cmd1 && cmd2; then
echo success
else
echo epic fail
fi
||
non guarda l'output del primo echo
comando.
Just try whoami && whoami && echo success || echo epic fail
e ora whoami && whoareyou && echo success || echo epic fail
. Non riesco a capire cosa intendi con "non guarda all'output del primo comando echo"
cmd1 && cmd2
Petr Uzel è perfetto ma puoi anche giocare con $ $.
$? contiene il codice di uscita dall'ultimo comando eseguito e se lo usi puoi scrivere i tuoi script in modo abbastanza flessibile.
Questa domanda tocca un po 'questo argomento. Le migliori pratiche per usare $? a bash? .
cmd1
if [ "$?" -eq "0" ]
then
echo "ok"
else
echo "Fail"
fi
Quindi puoi anche reagire a diversi codici di uscita e fare cose diverse, se lo desideri.
Lo pseudo-codice nella domanda non corrisponde al titolo della domanda.
Se qualcuno ha davvero bisogno di sapere come eseguire il comando 2 se il comando 1 fallisce, questa è una semplice spiegazione:
cmd1 || cmd2
: Verrà eseguito cmd1
e in caso di errore verrà eseguitocmd2
cmd1 && cmd2
: Verrà eseguito cmd1
e in caso di successo verrà eseguitocmd2
cmd1 ; cmd2
: Questo verrà eseguito cmd1
e quindi verrà eseguito cmd2
, indipendentemente dall'errore o dal successo dell'esecuzione cmd1
.