GNU/Linux >> Belajar Linux >  >> Linux

Cara Bekerja dengan Pernyataan Kasus di Skrip Bash

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.


Linux
  1. Bagaimana Agar Vim Bekerja Dengan Tmux Dengan Benar?

  2. Bagaimana Cara Mencocokkan Pola Case Insensitive Dengan Ls?

  3. 5 Contoh Pernyataan Kasus Bash

  1. Cara Menulis Skrip Bash dengan Contoh

  2. Bagaimana Cara Mengatur Bash Untuk Menjalankan *.exe Dengan Mono?

  3. Pernyataan Bash If-Else Dengan Contoh

  1. Sintaks Pernyataan Bash case dan Contohnya

  2. Bash melanjutkan:Cara Melanjutkan Loop

  3. Cara bekerja dengan grup paket dnf