Dalam panduan ini, periksa cara memeriksa kod keluar bash dari arahan terakhir dan beberapa kemungkinan penggunaannya.
Kod Keluar Bash
Setiap arahan UNIX / Linux yang dijalankan oleh skrip shell atau pengguna meninggalkan status keluar. Ini adalah nombor bulat yang tidak berubah kecuali perintah seterusnya dijalankan. Sekiranya kod keluar adalah 0, maka perintah itu berjaya. Sekiranya kod keluar tidak sifar (1-255), maka ini menandakan kesalahan.
Terdapat banyak kemungkinan penggunaan kod keluar bash. Yang paling jelas adalah, tentu saja, untuk mengesahkan sama ada arahan terakhir dilaksanakan dengan betul, terutamanya jika perintah itu tidak menghasilkan output.
Dalam kes bash, kod keluar dari perintah sebelumnya dapat diakses menggunakan pemboleh ubah shell “$?".
Memeriksa Kod Keluar Bash
Lancarkan terminal, dan jalankan sebarang arahan.
$ tarikhPeriksa nilai pemboleh ubah shell “$?"Untuk kod keluar.
$ bergema $?
Oleh kerana arahan "tarikh" berjaya, kod keluar adalah 0. Apa yang akan berlaku sekiranya terdapat kesalahan?
Mari cuba jalankan perintah yang tidak ada.
$ abcdPeriksa kod keluar.
$ bergema $?
Ini adalah nilai bukan sifar, yang menunjukkan bahawa perintah sebelumnya tidak dilaksanakan dengan baik.
Sekarang, perhatikan arahan berikut:
$ sampel kucing.txt | grep "duit syiling"
Apabila bekerja dengan arahan yang mempunyai satu atau lebih paip, kod keluar adalah kod terakhir yang dilaksanakan di dalam paip. Dalam kes ini, ia adalah perintah grep.
Oleh kerana perintah grep berjaya, ia akan menjadi 0.
$ bergema $?
Dalam contoh ini, jika perintah grep gagal, maka kod keluar akan menjadi bukan sifar.
$ sampel kucing.txt | grep "abcd"$ bergema $?
Memasukkan Kod Keluar dalam Skrip
Kod keluar juga dapat digunakan untuk skrip. Salah satu cara mudah untuk menggunakannya adalah dengan menetapkannya ke pemboleh ubah shell dan bekerja dengannya. Berikut adalah contoh skrip shell yang menggunakan kod keluar sebagai syarat untuk mencetak output tertentu.
$ #!/ bin / bash$ gema "hello world"
status $ = $?
$ [$ status -eq 0] && echo "perintah berjaya" || gema "arahan tidak berjaya"
Semasa dijalankan, skrip akan menghasilkan output berikut.
Sekarang, mari kita lihat apa yang berlaku apabila terdapat perintah yang tidak betul untuk dijalankan.
$ #!/ bin / bash$ perintah rawak
status $ = $?
$ [$ status -eq 0] && echo "perintah berjaya" || gema "arahan tidak berjaya"
Semasa dijalankan, output akan berbeza.
Penjelasan Nilai Kod Keluar
Apabila kod keluar tidak sifar, nilainya berkisar antara 1 hingga 255. Sekarang, apakah maksud nilai ini?
Walaupun nilainya terhad, penjelasan setiap nilai adalah unik untuk program / skrip. Sebagai contoh, "ls" dan "grep" mempunyai penjelasan yang berbeza untuk kod ralat 1 dan 2.
$ lelaki ls$ lelaki grep
Menentukan Status Keluar dalam Skrip
Semasa menulis skrip, kita dapat menentukan nilai kod keluar khusus. Ini kaedah yang berguna untuk penyahpepijatan yang lebih mudah. Dalam skrip bash, ini adalah perintah "keluar" diikuti oleh nilai kod keluar.
$ keluarMenurut konvensyen, disarankan untuk menetapkan kod keluar 0 untuk pelaksanaan yang berjaya dan gunakan selebihnya (1-255) untuk kemungkinan kesalahan. Ketika mencapai perintah keluar, pelaksanaan skrip shell akan dihentikan, jadi berhati-hatilah dengan penempatannya.
Lihat skrip shell berikut. Di sini, jika syaratnya dipenuhi, skrip akan berakhir dengan kod keluar 0. Sekiranya syarat tidak dipenuhi, maka kod keluar akan menjadi 1.
$ #!/ bin / bash$ jika [["$ (whoami)" != akar]]; kemudian
$ echo "Bukan pengguna root."
$ keluar 1
$ fi
$ echo "pengguna root"
$ keluar 0
Sahkan hasil menjalankan skrip ini tanpa hak istimewa sudo atau pengguna "root".
$ ./ sampel.sh$ bergema $?
Pemikiran Akhir
Panduan ini menunjukkan apakah kod keluar dan bagaimana anda boleh menggunakannya. Ini juga menunjukkan cara menetapkan kod keluar yang sesuai dalam skrip bash.
Berminat dengan skrip bash? Salah satu cara termudah untuk memulakannya adalah dengan menulis skrip anda sendiri. Lihat panduan ringkas ini mengenai cara menulis skrip bash ringkas.
Selamat pengkomputeran!