Saya punya grep
perintah. Saya mencari kata kunci dari file, tetapi saya tidak ingin menampilkan kecocokan. Saya hanya ingin tahu status keluar dari grep
.
shell-script
scripting
grep
jackass27
sumber
sumber
echo $?
jikagrep
mengembalikan kode keluar yang tidak nol.Anda hanya perlu menggabungkan
grep -q <pattern>
dengan pemeriksaan langsung kode keluar untuk proses terakhir untuk berhenti ($?
).Anda dapat menggunakan ini untuk membangun perintah seperti ini, misalnya:
uname -a | grep -qi 'linux' ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error" ;; esac
Anda secara opsional dapat menekan output dari
STDERR
seperti:grep -qi 'root' /etc/shadow &> /dev/null ; case "$?" in "0") echo "match" ;; "1") echo "no match" ;; *) echo "error: $?" ;; esac
Ini akan dicetak
error: 2
daricase
pernyataan (dengan asumsi kita tidak memiliki hak istimewa untuk membaca/etc/shadow
atau bahwa file tersebut tidak ada) tetapi pesan kesalahan darigrep
akan dialihkan ke/dev/null
sehingga kita tidak pernah melihatnya.sumber