Ho uno script bash con il seguente:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Questo script non verrà eseguito senza -e. Cosa fa -e
questo script? Inoltre, cosa fa $?
in questo contesto?
-e
è documentato sotto set
.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
if
e [
. Questo script non funziona con -e
, perché se grep
non trova nulla poi sotto -e
lo script terminerà proprio lì. Senza -e
, hai il messaggio al contrario: uno status ( $?
) di 0 significa che grep ha trovato l'utente. Si noti che questo dovrebbe essere `grep '^ username:', a proposito (e se ci fosse un altro utente con un nome più lungo?).
#/bin/bash -e
lo stesso effetto #/bin/bash
della linea 1 e set -e
della linea 2?
-e
nella pagina man (voglio davvero vedere una risposta indirizzare questo).$?
contiene l'ultimo codice di uscita (quello delegrep
processo generato sopra).