Memeriksa jika arahan berjaya dalam bash menggunakan '$?'Pemboleh ubah khas
- 4952
- 1500
- Clay Weber
Di bash, sering perlu untuk memeriksa sama ada perintah berjaya atau gagal. Sebagai contoh, anda mungkin mahu melaksanakan arahan yang berbeza berdasarkan kejayaan atau kegagalan arahan, atau anda mungkin mahu melakukan pengendalian ralat dalam skrip. Untuk memeriksa sama ada arahan berjaya atau gagal dalam bash, anda boleh memeriksa status keluar perintah. Status keluar perintah adalah nilai berangka yang menunjukkan kejayaan atau kegagalan arahan. Perintah dengan status keluar 0 menunjukkan kejayaan, dan arahan dengan status keluar bukan sifar menunjukkan kegagalan.
Dalam artikel ini, kami akan meneroka pelbagai cara untuk memeriksa status keluar perintah di Bash, termasuk menggunakan '$?' pemboleh ubah khas, menggunakan '&&' dan '||' pengendali, dan menggunakan skrip dan fungsi. Memahami Cara Memeriksa Status Keluar Perintah di Bash boleh membantu dalam pelbagai senario ketika bekerja dengan Bash.
Memeriksa sama ada arahan berjaya dalam bash
Di Bash, anda boleh menyemak sama ada arahan berjaya atau gagal dengan memeriksa status keluar perintah. Status keluar perintah adalah nilai berangka yang menunjukkan kejayaan atau kegagalan arahan. Perintah dengan status keluar 0 menunjukkan kejayaan, dan arahan dengan status keluar bukan sifar menunjukkan kegagalan.
Untuk memeriksa status keluar arahan di Bash, anda boleh menggunakan $? Pemboleh ubah khas, yang menyimpan status keluar perintah yang paling baru dilaksanakan.
Sebagai contoh, pertimbangkan arahan berikut:
ls -l /etc /
Perintah ini menyenaraikan kandungan '/dan lain-lain'
direktori dalam format panjang. Untuk memeriksa sama ada arahan ini berjaya, anda boleh menggunakan kod berikut:
123456 | ls -l /etc /jika [$? -eq 0]; Kemudian echo "perintah berjaya" lain echo "perintah gagal" fi |
Kod ini memeriksa status keluar perintah LS dengan memeriksa nilai $? pemboleh ubah khas. Sekiranya nilai '$?' adalah '0', Perintah itu berjaya, dan kodnya mencetak "Perintah berjaya". Sekiranya nilai '$?' bukan sifar, arahan gagal, dan cetakan kod "Perintah gagal".
Semak status keluar fungsi
Anda juga boleh menggunakan '$?' Pemboleh ubah khas untuk memeriksa status keluar arahan dalam skrip atau fungsi. Sebagai contoh, pertimbangkan skrip berikut:
#/usr/bin/env bash check_command () command if [$? -eq 0]; kemudian kembali 0 lagi kembali 1 fi check_command ls -l / etc / jika [$? -eq 0]; Kemudian echo "perintah berjaya" lain echo "perintah gagal" fi1234567891011121314151617 | #/usr/bin/env bash check_command () command if [$? -eq 0]; kemudian kembali 0 lagi kembali 1 fi check_command ls -l /etc /jika [$? -eq 0]; Kemudian echo "perintah berjaya" lain echo "perintah gagal" fi |
Skrip ini mentakrifkan fungsi check_command yang mengambil arahan sebagai hujah dan memeriksa status keluar perintah. Fungsi ini kembali '0' Sekiranya arahan berjaya dan '1' Sekiranya arahan gagal. Skrip kemudian memanggil fungsi check_command dengan arahan LS dan memeriksa status keluar fungsi dengan memeriksa nilai '$?' pemboleh ubah khas. Sekiranya nilai '$?' adalah '0', Perintah itu berjaya, dan skrip mencetak "Perintah berjaya". Sekiranya nilai '$?' adalah '1', Perintah itu gagal, dan skrip mencetak "Perintah gagal".
Periksa status keluar menggunakan '&&'
Dan '||'
dalam bash
Selain menggunakan '$?' pemboleh ubah khas, anda juga boleh menggunakan '&&' dan '||' pengendali untuk memeriksa status keluar arahan dan melaksanakan arahan yang berbeza berdasarkan hasilnya. Sebagai contoh, pertimbangkan kod berikut:
ls -l / etc / && echo "Command berjaya" || echo "Perintah gagal"1 | ls -l / etc / && echo "Command berjaya" || echo "Perintah gagal" |
Kod ini memeriksa status keluar dari 'ls'
'Perintah dan melaksanakan arahan yang berbeza berdasarkan hasilnya. Sekiranya arahan LS berjaya, kod tersebut mencetak "Perintah berjaya". Sekiranya arahan LS gagal, kod tersebut mencetak "Perintah gagal".
Kesimpulan
Kesimpulannya, memeriksa jika arahan berjaya atau gagal dalam bash adalah tugas yang berguna yang dapat dicapai dengan memeriksa status keluar perintah. Status keluar perintah adalah nilai berangka yang menunjukkan kejayaan atau kegagalan arahan. Arahan dengan status keluar dari '0' Menunjukkan kejayaan, dan arahan dengan status keluar bukan sifar menunjukkan kegagalan. Untuk memeriksa status keluar arahan di Bash, anda boleh menggunakan $? Pemboleh ubah khas, yang menyimpan status keluar perintah yang paling baru dilaksanakan.
Anda juga boleh menggunakan $? pemboleh ubah khas untuk memeriksa status keluar perintah dalam skrip atau fungsi atau menggunakan '&&' dan '||' pengendali untuk memeriksa status keluar dan melaksanakan arahan yang berbeza berdasarkan hasilnya. Memahami Cara Memeriksa Status Keluar Perintah di Bash boleh membantu dalam pelbagai senario, seperti ketika anda ingin melaksanakan perintah yang berbeza berdasarkan kejayaan atau kegagalan perintah atau ketika anda ingin melakukan pengendalian ralat dalam skrip.