Dalam artikel ini, kita akan melihat pernyataan kasus bash dan bagaimana menggunakannya dalam skrip bash. Pernyataan kasus adalah bash yang dibuat dan digunakan untuk menyederhanakan logika kondisional dalam skrip bash.
[ Anda mungkin juga menyukai:Cara Menggunakan Perintah Deklarasi di Linux Bash Shell ]
Sederhananya, ketika kode Anda memiliki beberapa [ if - elif - else ]
bersyarat pernyataan Anda dapat mengganti pernyataan bersyarat dengan pernyataan kasus. Konsep pernyataan kasus juga tersedia dalam bahasa pemrograman lain seperti C, Perl, Java, Javascript, dll. Dalam beberapa bahasa, itu akan menjadi pernyataan sakelar kasus dan dalam beberapa bahasa, itu akan menjadi pernyataan kasus, itu berbeda menurut dengan bahasa yang Anda gunakan.
Memahami Sintaks untuk Pernyataan Kasus
Sebelum menggunakan pernyataan kasus dalam skrip Anda, Anda harus memahami sintaksnya.
case expression in pattern1) STATEMENTS ;; pattern2 | pattern3) STATEMENTS ;; pattern-N) STATEMENTS ;; *) STATEMENTS ;; esac
Penjelasan pernyataan kasus di atas.
- Pernyataan kasus harus dimulai dengan kata kunci kasus dan diakhiri dengan esac kata kunci.
- Pernyataan kasus akan mengevaluasi ekspresi dan menemukan apakah ekspresi cocok dengan salah satu pola. Ekspresi harus muncul setelah kata kunci case.
- Pola akan dievaluasi dan jika cocok dengan ekspresi maka pernyataan akan dieksekusi. Pola dan pernyataan disebut klausa. Untuk mengakhiri klausa gunakan tanda titik koma ganda
";;"
. - Jika sebuah pola cocok maka pola lainnya akan dilewati.
- Anda dapat membuat pola sebanyak yang Anda inginkan.
- Simbol asterisk
(*)
akan digunakan sebagai pola default. Jika ekspresi tidak cocok dengan salah satu pola, maka pola default akan digunakan.
Membuat Pernyataan Kasus Sederhana dalam Skrip
Saya membuat pernyataan kasus sederhana yang akan menampilkan tim yang memenangkan liga champions berdasarkan tahun. Pengguna harus memasukkan tahun sebagai input.
#!/usr/bin/env bash read -p "Enter the year to get the winner name : " WINNER case $WINNER in 2016) echo " Winner is Real Madrid";; 2017) echo " Winner is Real Madrid";; 2018) echo " Winner is Liverpool";; 2019) echo " Winner is Bayern Munich";; 2020) echo " Winner is Chelsea";; *) echo " No data available for the given option";; esac
Perhatikan kode dan output di atas. Pengguna melewati tahun sebagai input dan disimpan dalam variabel PEMENANG . Tahun akan dievaluasi terhadap semua tahun yang diberikan sebagai pola di dalam pernyataan kasus. Jika tahun yang dilewati pengguna tidak cocok dengan pola default apa pun (*)
digunakan.
Dimungkinkan juga untuk mengevaluasi beberapa pola dalam satu klausa. Anda harus menggunakan "|"
simbol untuk menggunakan satu atau lebih pola dalam klausa. Kami akan menggunakan kode yang sama dari contoh sebelumnya. Jika Anda melihat tahun 2016 dan 2017 tim yang sama memenangkan piala. Daripada membuat klausa terpisah untuk tahun 2016 dan 2017, Anda dapat membuat klausa tunggal.
#!/usr/bin/env bash read -p "Enter the year to get the winner name : " WINNER case $WINNER in 2016 | 2017) echo " Winner is Real Madrid";; 2018) echo " Winner is Liverpool";; 2019) echo " Winner is Bayern Munich";; 2020) echo " Winner is Chelsea";; *) echo " No data available for the given option";; esac
Sekarang ketika pengguna melewati 2016 atau 2017 sebagai input, itu akan dievaluasi di klausa pertama.
Anda juga dapat menggunakan Pencocokan pola dalam pernyataan kasus. Saya kembali memodifikasi kode yang sama dan menambahkan dua klausa lagi untuk mengevaluasi string dan tahun lainnya.
#!/usr/bin/env bash read -p "Enter the year to get the winner name : " WINNER case $WINNER in 2016 | 2017) echo " Winner is Real Madrid";; 2018) echo " Winner is Liverpool";; 2019) echo " Winner is Bayern Munich";; 2020) echo " Winner is Chelsea";; [a..z]* | [A..Z]*) echo " Year should be passed as argument. Input is wrong";; [0-9][0-9][0-9][0-9]) echo "No data for the passed year..." esac
Saya sarankan Anda melihat ~/.bashrc
file dan file di bawah /etc/init.d/ dimana pernyataan kasus akan digunakan. Menelusuri file-file ini akan memberi Anda gambaran tentang cara menggunakannya secara real-time.
Itu saja untuk artikel ini. Pernyataan kasus adalah konsep penting untuk diketahui saat Anda bekerja dengan skrip shell. Saat Anda mulai mengganti pernyataan bersyarat dengan pernyataan kasus, kode Anda akan bersih dan dapat dipelihara.