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 -equesto script? Inoltre, cosa fa $?in questo contesto?
-eè documentato sotto set.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
ife [. Questo script non funziona con -e , perché se grepnon trova nulla poi sotto -elo 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 -elo stesso effetto #/bin/bashdella linea 1 e set -edella linea 2?
-enella pagina man (voglio davvero vedere una risposta indirizzare questo).$?contiene l'ultimo codice di uscita (quello delegrepprocesso generato sopra).