GNU/Linux >> Belajar Linux >  >> Linux

Perintah Bash Keluar dan Kode Keluar

Seringkali saat menulis skrip Bash, Anda harus menghentikan skrip saat kondisi tertentu terpenuhi atau untuk mengambil tindakan berdasarkan kode keluar dari suatu perintah.

Pada artikel ini, kita akan membahas exit Bash perintah bawaan dan status keluar dari perintah yang dijalankan.

Status Keluar #

Setiap perintah shell mengembalikan kode keluar ketika dihentikan, baik berhasil atau tidak berhasil.

Berdasarkan konvensi, kode keluar nol menunjukkan bahwa perintah berhasil diselesaikan, dan bukan nol berarti telah terjadi kesalahan.

Variabel khusus $? mengembalikan status keluar dari perintah yang terakhir dieksekusi:

date &> /dev/nullecho $?

date perintah berhasil diselesaikan, dan kode keluar adalah nol:

0

Jika Anda mencoba menjalankan ls pada direktori yang tidak ada kode keluarnya bukan nol:

ls /nonexisting_dir &> /dev/nullecho $?
2

Kode status dapat digunakan untuk mengetahui mengapa perintah gagal. Setiap halaman manual perintah menyertakan informasi tentang kode keluar.

Saat menjalankan pipeline multi-perintah, status keluar dari pipeline adalah perintah terakhir:

sudo tcpdump -n -l | tee file.outecho $?

Pada contoh di atas echo $? akan mencetak kode keluar dari tee perintah.

Bash exit perintah #

exit perintah keluar dari shell dengan status N . Ini memiliki sintaks berikut:

exit N

Jika N tidak diberikan, kode status keluar adalah kode dari perintah yang dieksekusi terakhir.

Saat digunakan dalam skrip shell, nilai yang diberikan sebagai argumen ke exit perintah dikembalikan ke shell sebagai kode keluar.

Contoh #

Status keluar perintah dapat digunakan dalam perintah bersyarat seperti if . Pada contoh berikut grep akan keluar dengan nol (yang berarti benar dalam skrip shell) jika "string-pencarian" ditemukan di filename :

if grep -q "search-string" filename then
  echo "String found."
else
  echo "String not found."
fi

Saat menjalankan daftar perintah yang dipisahkan oleh && (DAN) atau || (ATAU), status keluar dari perintah menentukan apakah perintah berikutnya dalam daftar akan dieksekusi. Di sini, mkdir perintah akan dijalankan hanya jika cd mengembalikan nol:

cd /opt/code && mkdir project

Jika skrip diakhiri dengan exit tanpa menentukan parameter, kode keluar skrip adalah perintah terakhir yang dieksekusi dalam skrip.

~/script.sh
#!/bin/bash

echo "doing stuff..."

exit

Cukup menggunakan exit sama dengan exit $? atau menghilangkan exit .

Berikut adalah contoh yang menunjukkan cara menghentikan skrip jika dipanggil oleh pengguna non-root:

#!/bin/bash

if [[ "$(whoami)" != root ]]; then
  echo "Only user root can run this script."
  exit 1
fi

echo "doing stuff..."

exit 0

Jika Anda menjalankan skrip sebagai root, kode keluar akan menjadi nol. Jika tidak, skrip akan keluar dengan status 1 .

Kesimpulan #

Setiap perintah shell mengembalikan kode keluar ketika berakhir. exit perintah digunakan untuk keluar dari shell dengan status tertentu.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Perbedaan Antara Operator Bash [[ Vs [ Vs ( Vs ((?

  2. Perbedaan Antara ' Dan ” Di Command Line (bash)??

  3. perintah ekspor bash

  1. Kode keluar baris perintah bash didemistifikasi

  2. Apa itu Kode Keluar Bash di Linux

  3. perintah eval di Bash dan kegunaannya yang khas

  1. Keluar dari kode penugasan variabel ke substitusi perintah di Bash

  2. Bash:Ulangi hingga status keluar perintah sama dengan 0

  3. Bash - Perintah tanggal dan spasi