Memeriksa apakah sebuah perintah berhasil di bash menggunakan '$?'Variabel khusus

Memeriksa apakah sebuah perintah berhasil di bash menggunakan '$?'Variabel khusus

Dalam bash, sering kali perlu memeriksa apakah perintah berhasil atau gagal. Misalnya, Anda mungkin ingin menjalankan perintah yang berbeda berdasarkan keberhasilan atau kegagalan perintah, atau Anda mungkin ingin melakukan penanganan kesalahan dalam skrip. Untuk memeriksa apakah perintah berhasil atau gagal dalam pesta, Anda dapat memeriksa status keluar dari perintah. Status keluar dari suatu perintah adalah nilai numerik yang menunjukkan keberhasilan atau kegagalan perintah. Perintah dengan status keluar dari 0 menunjukkan keberhasilan, dan perintah dengan status keluar nol menunjukkan kegagalan.

Dalam artikel ini, kami akan mengeksplorasi berbagai cara untuk memeriksa status keluar dari perintah dalam bash, termasuk menggunakan '$?' variabel khusus, menggunakan '&&' Dan '||' operator, dan menggunakan skrip dan fungsi. Memahami cara memeriksa status keluar dari suatu perintah dalam bash dapat membantu dalam berbagai skenario saat bekerja dengan bash.

Memeriksa apakah sebuah perintah berhasil dalam bash

Di Bash, Anda dapat memeriksa apakah perintah berhasil atau gagal dengan memeriksa status keluar dari perintah. Status keluar dari suatu perintah adalah nilai numerik yang menunjukkan keberhasilan atau kegagalan perintah. Perintah dengan status keluar dari 0 menunjukkan keberhasilan, dan perintah dengan status keluar nol menunjukkan kegagalan.

Untuk memeriksa status keluar dari suatu perintah dalam pesta, Anda dapat menggunakan $? variabel khusus, yang menyimpan status keluar dari perintah yang paling baru dieksekusi.

Misalnya, pertimbangkan perintah berikut:

ls -l /etc /  

Perintah ini mencantumkan isi dari '/dll' direktori dalam format panjang. Untuk memeriksa apakah perintah ini berhasil, Anda dapat menggunakan kode berikut:

ls -l / etc / if [$? -eq 0]; Kemudian echo "perintah berhasil" lain echo "perintah gagal" fi
123456ls -l /etc /if [$? -eq 0]; Kemudian echo "perintah berhasil" lain echo "perintah gagal" fi

Kode ini memeriksa status keluar dari perintah LS dengan memeriksa nilai $? variabel khusus. Jika nilainya '$?' adalah '0', Perintah itu berhasil, dan kode dicetak “Perintah berhasil”. Jika nilainya '$?' tidak nol, perintah gagal, dan kode dicetak "Perintah gagal".

Periksa status keluar dari suatu fungsi

Anda juga dapat menggunakan '$?' variabel khusus untuk memeriksa status keluar dari suatu perintah dalam skrip atau fungsi. Misalnya, pertimbangkan skrip berikut:

#/usr/bin/env bash check_command () command if [$? -eq 0]; lalu return 0 lain return 1 fi check_command ls -l / etc / if [$? -eq 0]; Kemudian echo "perintah berhasil" lain echo "perintah gagal" fi
1234567891011121314151617#/usr/bin/env bash check_command () command if [$? -eq 0]; lalu return 0 lain return 1 fi check_command ls -l /etc /if [$? -eq 0]; Kemudian echo "perintah berhasil" lain echo "perintah gagal" fi

Script ini mendefinisikan fungsi check_command yang mengambil perintah sebagai argumen dan memeriksa status keluar dari perintah. Fungsi kembali '0' Jika perintah berhasil dan '1' Jika perintah gagal. Script kemudian memanggil fungsi check_command dengan perintah LS dan memeriksa status keluar fungsi dengan memeriksa nilai dari '$?' variabel khusus. Jika nilainya '$?' adalah '0', Perintah itu berhasil, dan skrip mencetak “Perintah berhasil”. Jika nilainya '$?' adalah '1', Perintah gagal, dan skrip mencetak "Perintah gagal".

Periksa status keluar menggunakan '&&' Dan '||' di pesta

Selain menggunakan '$?' variabel khusus, Anda juga dapat menggunakan '&&' Dan '||' operator untuk memeriksa status keluar dari suatu perintah dan menjalankan perintah yang berbeda berdasarkan hasilnya. Misalnya, pertimbangkan kode berikut:

ls -l / etc / && echo "perintah berhasil" || echo "perintah gagal"
1ls -l / etc / && echo "perintah berhasil" || echo "perintah gagal"

Kode ini memeriksa status keluar dari 'ls''Perintah dan jalankan perintah yang berbeda berdasarkan hasilnya. Jika perintah LS berhasil, kode mencetak “Perintah berhasil”. Jika perintah LS gagal, kode mencetak "Perintah gagal".

Kesimpulan

Sebagai kesimpulan, memeriksa apakah suatu perintah berhasil atau gagal dalam bash adalah tugas yang berguna yang dapat diselesaikan dengan memeriksa status keluar dari perintah tersebut. Status keluar dari suatu perintah adalah nilai numerik yang menunjukkan keberhasilan atau kegagalan perintah. Perintah dengan status keluar '0' menunjukkan keberhasilan, dan perintah dengan status keluar yang tidak nol menunjukkan kegagalan. Untuk memeriksa status keluar dari suatu perintah dalam pesta, Anda dapat menggunakan $? variabel khusus, yang menyimpan status keluar dari perintah yang paling baru dieksekusi.

Anda juga dapat menggunakan $? variabel khusus untuk memeriksa status keluar dari suatu perintah dalam skrip atau fungsi atau menggunakan '&&' Dan '||' operator untuk memeriksa status keluar dan menjalankan perintah yang berbeda berdasarkan hasilnya. Memahami cara memeriksa status keluar dari suatu perintah dalam bash dapat membantu dalam berbagai skenario, seperti saat Anda ingin menjalankan perintah yang berbeda berdasarkan keberhasilan atau kegagalan perintah atau ketika Anda ingin melakukan penanganan kesalahan dalam skrip.