Saya memiliki skrip bash dengan yang berikut:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
Script ini tidak akan berjalan tanpa -e. Apa yang -e
dilakukan untuk skrip ini? Juga, apa yang $?
dilakukan dalam konteks ini?
-e
didokumentasikan di bawah set
.
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
if
dan [
. Script ini tidak akan bekerja dengan -e
, karena jika grep
tidak menemukan apa-apa kemudian di bawah -e
script akan mengakhiri sana. Tanpa -e
, Anda mendapat pesan mundur: status ( $?
) dari 0 berarti bahwa grep memang menemukan pengguna. Perhatikan bahwa ini seharusnya `grep '^ nama pengguna:', omong-omong (bagaimana jika ada pengguna lain dengan nama yang lebih panjang?).
#/bin/bash -e
memiliki efek yang sama seperti #/bin/bash
pada baris # 1 dan set -e
pada baris # 2?
-e
di halaman manual (saya benar-benar ingin melihat alamat jawaban ini).$?
berisi kode keluar terakhir (kodeegrep
proses yang muncul di atas).