Tengo un script bash con lo siguiente:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Este script no se ejecutará sin el -e. ¿Qué hace el -epara este script? Además, ¿qué hace el $?en este contexto?
-ese documenta en set.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
ify [. Este script no funcionará con -e , porque si grepno encuentra nada entonces bajo -eel guión terminará ahí. Sin -e, tienes el mensaje al revés: un estado ( $?) de 0 significa que grep encontró al usuario. Tenga en cuenta que esto debería ser `grep '^ username:', por cierto (¿qué pasa si hay otro usuario con un nombre más largo?).
#/bin/bash -eel mismo efecto que #/bin/bashen la línea 1 y set -een la línea 2?
-een la página de manual (realmente quiero ver una respuesta a esto).$?contiene el último código de salida (el delegrepproceso generado anteriormente).