Mam skrypt bash z następującymi elementami:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Ten skrypt nie będzie działał bez -e. Co robi -eten skrypt? Co również robi $?w tym kontekście?
-ejest udokumentowane pod set.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
ifi [. Ten skrypt nie działa z -e , bo jeśli grepnie znajdzie niczego wtedy pod -eskryptu zakończy tam. Bez -etego wiadomość jest odwrócona: status ( $?) 0 oznacza, że grep znalazł użytkownika. Zauważ, że tak na marginesie powinna to być nazwa użytkownika `grep '^: (a jeśli jest inny użytkownik o dłuższej nazwie?).
#/bin/bash -emiał taki sam efekt jak #/bin/bashna linii nr 1 i set -elinii nr 2?
-ena stronie podręcznika (naprawdę chcę zobaczyć odpowiedź na to pytanie).$?zawiera ostatni kod zakończenia (kodegrepprocesu spawnowanego powyżej).