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 -escript? Aussi, que fait le $?dans ce contexte?
-eest documenté sous set.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
ifet [. Ce script ne fonctionne pas avec -e , parce que si grepne trouve rien alors sous -ele 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 -ele même effet qu'à la #/bin/bashligne # 1 et set -eà la ligne # 2?
-edans la page de manuel (je veux vraiment voir une réponse pour répondre à cela).$?contient le dernier code de sortie (celui duegrepprocessus généré ci-dessus).