Tutorial ini akan memandu Anda melalui dasar-dasar if-then dan case untuk pernyataan Bash dan menunjukkan cara menggunakannya dalam skrip shell Anda.
Pengambilan keputusan adalah salah satu konsep paling mendasar dari pemrograman komputer. Seperti dalam bahasa pemrograman lainnya, if, if. .else, if. .elif. .else, dan pernyataan bersarang if di Bash digunakan untuk mengeksekusi kode berdasarkan kondisi tertentu.
if Pernyataan
Kondisional Bash if dapat memiliki bentuk yang berbeda. Pernyataan paling dasar if mengambil bentuk berikut :
if TEST-COMMAND
then
STATEMENTS
fi
Pernyataan if dimulai dengan if kata kunci diikuti oleh ekspresi kondisional dan then kata kunci. Pernyataan diakhiri dengan fi kata kunci.
Jika TEST-COMMAND dievaluasi ke TRUE, STATEMENTS dieksekusi. Jika TEST-COMMAND kembali FALSE, tidak ada yang terjadi; yang STATEMENTS diabaikan.
Secara umum, merupakan praktik yang baik untuk selalu mengindentasi kode Anda dan memisahkan blok kode dengan baris kosong. Kebanyakan orang memilih untuk menggunakan lekukan 4 spasi atau 2 spasi. Lekukan dan baris kosong membuat kode Anda lebih mudah dibaca dan teratur.
Mari kita lihat contoh skrip berikut yang memeriksa apakah angka yang diberikan lebih besar dari 10 :
#!/bin/bash
# Script untuk if
echo -n "Masukkan Angka : "
read VAR
if [ [ $VAR -gt 10 ] ]
then
echo "Variabelnya lebih besar dari 10."
fi
Hasil :
Skrip akan meminta Anda untuk memasukkan angka. Jika, misalnya, Anda memasukkan 19, test perintah akan dievaluasi true karena 19 lebih besar dari 10, dan echo perintah di dalam then klausa akan dijalankan.
if..else Pernyataan
Pernyataan Bash if..else mengambil bentuk berikut :
if TEST-COMMAND
then
STATEMENTS1
else
STATEMENTS2
fi
Jika TEST-COMMAND bernilai TRUE, STATEMENTS1 akan dieksekusi. Jika tidak, jika TEST-COMMAND return FALSE, maka STATEMENTS2 akan dieksekusi. Anda hanya dapat memiliki satu else klausa yang dalam pernyataan itu.
Mari tambahkan else klausa ke skrip contoh sebelumnya :
#!/bin/bash
# Script untuk if else
echo -n "Masukkan Angka : "
read VAR
if [ [ $VAR -gt 10 ] ]
then
echo "Variabelnya lebih besar dari 10."
else
echo "Variabelnya sama atau lebih kecil dari 10."
fi
Hasil :
if..elif..else Pernyataan
Pernyataan Bash if..else mengambil bentuk berikut :
if TEST-COMMAND1
then
STATEMENTS1
elif TEST-COMMAND2
then
STATEMENTS2
else
STATEMENTS3
fi
Jika TEST-COMMAND1 bernilai TRUE, maka STATEMENTS1 akan dieksekusi. Jika TEST-COMMAND2 bernilai TRUE, maka STATEMENTS2 akan dieksekusi. Jika tidak ada perintah uji yang bernilai TRUE, maka STATEMENTS2 dijalankan.
Anda hanya dapat memiliki satu atau lebih elif klausa dalam pernyataan tersebut. Klausa else bersifat opsional.
Kondisi dievaluasi secara berurutan. Setelah kondisi kembali TRUE, kondisi yang tersisa tidak dilakukan, dan kontrol program berpindah ke akhir if pernyataan.
Mari tambahkan elif klausa ke skrip sebelumnya :
#!/bin/bash
# Script untuk if else
echo -n "Masukkan Angka : "
read VAR
if [ [ $VAR -gt 10 ] ]
then
echo "Variabelnya lebih besar dari 10."
elif [ [ $VAR -eq 10 ] ]
then
echo "Variabelnya sama dengan 10."
else
echo "Variabelnya kurang dari 10."
fi
Hasil :
if Pernyataan Bersarang
Bash memungkinkan Anda membuat pernyataan bersarang if di dalam if pernyataan. Anda dapat menempatkan beberapa if pernyataan di dalam pernyataan lain.
Skrip berikut akan meminta Anda memasukkan tiga angka dan mencetak angka terbesar di antara ketiga angka tersebut.
#!/bin/bash
# Script untuk if else
echo -n "Masukkan Angka Pertama : "
read VAR1
echo -n "Masukkan Angka Kedua : "
read VAR2
echo -n "Masukkan Angka Ketiga : "
read VAR3
if [ [ $VAR1 -ge $VAR2 ] ]
then
if [ [ $VAR1 -ge $VAR3 ] ]
then
echo "$VAR1 adalah angka terbesar."
else
echo "$VAR3 adalah angka terbesar."
fi
else
if [ [ $VAR2 -ge $VAR3 ] ]
then
echo "$VAR2 adalah angka terbesar."
else
echo "$VAR3 adalah angka terbesar."
fi
fi
Hasil :
Case
Pernyataan bash case adalah bentuk paling sederhana dari pernyataan bersyarat if..elif..else. Pernyataan case tersebut menyederhanakan kondisi kompleks dengan beberapa pilihan berbeda. Pernyataan ini lebih mudah dipertahankan dan lebih mudah dibaca daripada if mengambil pernyataan bersarang.
Pernyataan case tersebut menguji nilai input hingga menemukan pola yang sesuai dan mengeksekusi perintah yang terkait dengan nilai input tersebut. Jadi, ini adalah pilihan yang sangat baik untuk membuat menu dimana pengguna memilih opsi yang memicu tindakan yang sesuai.
Pernyataan bash case mengambil sintaks berikut :
case $variable in
pattern-1)
commands;;
pattern-2)
commands;;
pattern-3)
commands;;
pattern-N)
commands;;
*)
commands;;
esac
Pernyataan bash case dimulai dengan case kata kunci diikuti dengan $variable dan kata kunci. Pernyataan diakhiri dengan kata kunci mundur-.in caseesac
Contoh 1 : Keluarkan Deskripsi untuk Setiap Opsi
Contoh berikut adalah skrip yang memungkinkan pengguna memilih warna dan menampilkan komentar yang sesuai dengan masukan menggunakan perintah gema.
#!/bin/bash
# Script untuk case
echo "Warna mana yang Anda sukai?"
echo "1 - Biru"
echo "2 - Merah"
echo "3 - Kuning"
echo "4 - Hijau"
echo "5 - Jingga"
read warna;
case $warna in
1) echo "Biru adalah warna primer.";;
2) echo "Merah adalah warna primer.";;
3) echo "Kuning adalah warna primer.";;
4) echo "Hijau adalah warna sekunder.";;
5) echo "Jingga adalah warna sekunder.";;
*) echo "Warna ini tidak tersedia. Silakan pilih warna yang lain.";;
esac
Hasil :
Setiap baris memiliki peran sebagai berikut:
- Baris pertama di setiap skrip biasanya adalah shebang (#!) yang menginstruksikan sistem operasi yang akan digunakan juru bahasa untuk mengurai file.
- Baris 2-7 merupakan menu pilihan yang disajikan kepada pengguna untuk dipilih.
- Variabel read warna; meminta jawaban dari pengguna dan menyimpannya.
- Pernyataan case tersebut berisi kemungkinan tanggapan yang sesuai dengan input pengguna. Dalam contoh ini, keluarannya adalah echo keluaran perintah.
- Baris terakhir, esac, mengakhiri case pernyataan.