Eu tenho um script bash com o seguinte:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Este script não será executado sem o -e. O que -efaz para esse script? Além disso, o que faz $?neste contexto?
-eestá documentado em set.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
ife [. Este script não irá funcionar com -e , porque se grepnão encontrar nada, então sob -eo script será encerrado ali. Sem -e, você tem a mensagem ao contrário: um status ( $?) de 0 significa que o grep encontrou o usuário. Note que este deve ser `grep '^ username:', a propósito (e se houver outro usuário com um nome mais longo?).
#/bin/bash -eo mesmo efeito que #/bin/bashna linha 1 e set -ena linha 2?
-ena página do manual (eu realmente quero ver uma resposta abordando isso).$?contém o último código de saída (o doegrepprocesso gerado acima).