Saya sedang melakukan beberapa latihan latihan.
Tulis skrip yang akan diberi nomor bulan sebagai argumen dan akan menerjemahkan nomor ini menjadi nama bulan. Hasilnya akan dicetak ke stdout.
Saya membuat solusi:
#test for number of argument
if [ "$#" -eq 0 ] ;
then
echo -e "No argument."
echo -e "Write a number between 1 and 12."
exit 1
elif [ "$#" -gt 1 ] ;
then
echo -e "More than 1 argument."
echo -e "Write a number between 1 and 12."
exit 1
else
numb=$1
case "$numb" in
1) echo "Month: January";;
2) echo "Month: February";;
3) echo "Month: March";;
4) echo "Month: April";;
5) echo "Month: May";;
6) echo "Month: June";;
7) echo "Month: July";;
8) echo "Month: August";;
9) echo "Month: September";;
10) echo "Month: October";;
11) echo "Month: November";;
12) echo "Month: December";;
*) echo -e "You wrote a wrong number. Try again with writing number between 1 and 12.";;
esac
fi
exit 2
exit 0
Apa exit 1, exit 0
dan exit 2
berarti, dan mengapa kita menggunakannya?
Jawaban:
Inilah satu referensi yang bagus untuk kode keluar shell :
Peringatan: Menggunakan kode keluar yang benar bukanlah persyaratan dan tidak ditegakkan oleh shell. Pengembang dapat mengabaikan panduan jika mereka menganggapnya bijaksana.
sumber
Menggunakan
exit
dan nomor adalah cara praktis untuk memberi sinyal hasil skrip Anda. Ini meniru cara perintah bash menghasilkan kode kembali. Dengan perintah bash, kode pengembalian 0 biasanya berarti bahwa semuanya dijalankan dengan sukses tanpa kesalahan.exit
juga membuat skrip Anda menghentikan eksekusi pada saat itu dan kembali ke baris perintah.Setiap kode pengembalian yang lebih besar dari 0 menunjukkan kesalahan semacam, meskipun kadang-kadang kesalahan tidak kritis, untuk setiap perintah itu harus mungkin untuk menemukan beberapa dokumentasi yang memberi tahu Anda apa arti setiap kode kembali.
Anda bisa mendapatkan kode kembali dari perintah bash terakhir dengan menggunakan variabel shell
$?
seperti:Saat Anda menggunakan ini dalam skrip, Anda dapat meminta kode kembali dengan cara yang sama ketika selesai dijalankan. Jadi Anda akan melihat memiliki:
Agak tidak berarti, karena Anda tidak pernah dapat mencapai
exit 0
bagian itu.sumber
Dengan sendirinya,
exit
menyiratkan nilai keluar nol, atau berhasil menyelesaikan skrip Anda. Anda tidak perlu menambahkan argumen nol ke perintah keluar untuk menunjukkan penyelesaian yang berhasil. Skrip Anda mungkin (atau mungkin akan) keluar dengan sukses walaupun ia menguji kondisi yang salah. Dalam hal ini Anda ingin secara khusus keluar dengan kondisi kesalahan (atau 1).The
exit
perintah di baris terakhir tidak harus berada di sana sama sekali. Bisa disebut dengan nol atau tidak dipanggil sama sekali. Tanpa menentukan argumen 1 pada perintah keluar, jawaban dalam semua kasus iniecho $?
adalah nol.Namun dengan menentukan argumen 1 pada perintah keluar, respons terhadapnya
echo $?
adalah 1. Jadi gunakan argumen 1 pada perintah keluar ketika Anda ingin menentukan bahwa skrip telah keluar dengan kondisi kesalahan.sumber