Dalam skrip bash, pernyataan bersyarat membantu dalam memeriksa apakah suatu kondisi tertentu benar atau salah. Ketika kondisinya benar, skrip shell menjalankan atau mengeksekusi blok kode yang ditetapkan oleh skrip. Jika tidak, skrip akan melompati eksekusi kode dan melompat ke pernyataan kondisional berikutnya.
Dalam skrip bash, pernyataan kondisional menyertakan jika , jika-lain , if-elif-else dan bersarang jika pernyataan. Dalam panduan ini, kita akan mengeksplorasi bagaimana pernyataan kondisional ini digunakan dalam eksekusi skrip.
Pernyataan if
Dalam bentuknya yang paling sederhana, pernyataan 'if' menggunakan sintaks berikut.
if [[ conditional_statement ]] then command fi
Pernyataan if bersyarat dimulai dengan jika kata kunci. Ini diikuti oleh pernyataan kondisional yang kemudian diikuti oleh lalu kata kunci yang mendahului perintah yang akan dieksekusi jika pernyataan kondisional benar.
Jadi, jika pernyataan_kondisi benar, maka perintah dieksekusi. Jika bernilai False, tidak ada yang terjadi dan perintah sepenuhnya diabaikan dan skrip keluar.
Mari kita ambil contoh skrip bash yang memeriksa apakah skor yang diberikan lebih besar dari 80.
$ vim check_score.sh
Salin dan tempel skrip.
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" fi
Perhatikan lekukan dengan cermat. Tetapkan izin eksekusi menggunakan chmod perintah sebagai berikut:
$ chmod +x check_score.sh
Kemudian jalankan skripnya.
$ ./check_score.sh
Jika Anda memasukkan nilai yang lebih besar dari 80, pernyataan kondisional akan berlaku dan pesan gema akan dicetak ke stdout
Namun, jika nilai yang diberikan untuk skor kurang dari 80 – pernyataan bersyarat dievaluasi salah dan tidak ada yang terjadi. Script akan keluar begitu saja.
Pernyataan if-else
Dalam skrip shell sebelumnya, hanya satu perintah yang dieksekusi setelah pernyataan kondisional dievaluasi ke True. Ketika kondisi dievaluasi ke False, tidak ada yang dicetak dan skrip baru saja keluar. jika-lain pernyataan membantu kita untuk menjalankan perintah jika suatu kondisi bernilai salah. lainnya pernyataan kemudian diikuti oleh perintah atau pernyataan jika kondisi mengembalikan False.
if [[ conditional_statement ]] then command else command fi
Mari ubah skrip shell sebelumnya dan tambahkan else pernyataan
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" else echo "You have failed the exam, please try again" fi
Di sini, skrip shell mengeksekusi blok kode setelah else pernyataan hanya jika kondisi pertama bernilai salah – yaitu jika skor yang diberikan kurang dari 80.
Pada contoh pertama, skor yang diberikan adalah 90 , yang lebih besar dari 80, dan karenanya pernyataan pertama dalam skrip dieksekusi dan skrip keluar.
Namun, dalam kasus kedua, 70 diberikan, dan karena nilainya kurang dari 80, skrip melewatkan pernyataan pertama karena bernilai false dan melanjutkan untuk mengeksekusi pernyataan kedua setelah else pernyataan.
Pernyataan if-elif-else
Sejauh ini, kami telah memeriksa satu kondisi yang bernilai Benar atau Salah. elif Pernyataan (else -if ) digunakan dimana terdapat beberapa pernyataan kondisional yang memiliki hasil yang berbeda. Jika satu kondisi bernilai False, maka kondisi lainnya akan diperiksa apakah Benar. Berikut sintaks sederhana untuk pernyataan if-elif-else.
if [[ conditional_statement_1 ]] then command_1 elif [[ conditional_statement_2 ]] then command_2 else command_3 fi
Perhatikan script di bawah ini
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -ge 90 ]] then echo "Excellent!" elif [[ $score -ge 70 ]] then echo "Congratulations! Job well done!" elif [[ $score -ge 50 ]] then echo "Fairly done. There's more room for improvement!" else echo "Poorly done" fi
Dalam contoh ini, jika skornya lebih besar dari atau sama dengan 90, itu akan mencetak pesan Luar Biasa! Namun, jika skornya kurang dari 90 tetapi lebih besar atau sama dengan 70, akan dicetak Selamat! Pekerjaan selesai dengan baik! .
Jika skornya kurang dari 70, tetapi lebih besar dari atau sama dengan 50 akan mencetak pesan Cukup selesai. Ada lebih banyak ruang untuk perbaikan!
Dan terakhir, jika skornya kurang dari 50, hasilnya Buruk.
Pernyataan if bertingkat
Pernyataan if bersarang terdiri dari pernyataan if di dalam pernyataan if yang lain. ketika satu kondisi berlaku, skrip melanjutkan untuk memeriksa kondisi berikutnya. Dalam demonstrasi di bawah ini, kita akan mengambil nilai input dari 3 nilai numerik dan memeriksa mana di antara nilai tersebut yang terbesar.
#!/bin/bash read -p "Please enter the value of j:" j read -p "Please enter the value of k:" k read -p "Please enter the value of l:" l if [ $j -gt $k ] then if [ $j -gt $l ] then echo "j is greatest" else echo "l is greatest" fi else if [ $k -gt $l ] then echo "k is greatest" else echo "l is greatest" fi fi
Ringkasan
Itu adalah ikhtisar tingkat tinggi dari pernyataan bersyarat dalam skrip bash. Seperti yang telah Anda lihat, pernyataan kondisional digunakan untuk menentukan hasil skrip berdasarkan ekspresi kondisional yang ditetapkan. Mudah-mudahan, Anda sekarang memiliki dasar dasar pernyataan bersyarat.