J'ai un script bash avec les éléments suivants:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Ce script ne fonctionnera pas sans le -e. Que fait le -e
script? Aussi, que fait le $?
dans ce contexte?
-e
est documenté sous set
.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
if
et [
. Ce script ne fonctionne pas avec -e
, parce que si grep
ne trouve rien alors sous -e
le script mettra fin là. Sans -e
, vous avez le message en arrière: un statut ( $?
) de 0 signifie que grep a trouvé l'utilisateur. Notez que cela devrait être `grep '^ username:', au fait (et s'il y a un autre utilisateur avec un nom plus long?).
#/bin/bash -e
le même effet qu'à la #/bin/bash
ligne # 1 et set -e
à la ligne # 2?
-e
dans la page de manuel (je veux vraiment voir une réponse pour répondre à cela).$?
contient le dernier code de sortie (celui duegrep
processus généré ci-dessus).