Sintaks pernyataan kasus bash dan contoh

Sintaks pernyataan kasus bash dan contoh

Pernyataan Kasus adalah pernyataan bersyarat yang kuat dalam bash yang memungkinkan Anda untuk menguji variabel terhadap daftar nilai. Ini adalah alternatif yang lebih ringkas dan efisien untuk menggunakan beberapa pernyataan If-Then. Sering kali itu adalah alternatif yang baik untuk pernyataan if-else. Anda juga dapat menggunakannya untuk memproses argumen baris perintah dalam skrip shell.

Dalam artikel ini, kami akan memperkenalkan Anda pada pernyataan kasus di Bash dan memberikan contoh bagaimana hal itu dapat digunakan dalam skrip bash.

Sintaks pernyataan kasus dalam pesta

Sintaks pernyataan kasus dalam bash adalah sebagai berikut:

Ekspresi kasus dalam pola1) perintah1 ;; POLA2) Commands2 ;; POLA3) Commands3 ;; *) default_commands ;; ESAC
12345678910Ekspresi kasus dalam pola1) perintah1 ;; POLA2) Commands2 ;; POLA3) Commands3 ;; *) default_commands ;; esac

Kata kunci kasus menunjukkan awal dari pernyataan kasus, dan kata kunci dalam memisahkan ekspresi yang akan diuji dari daftar pola. Setiap pola terlampir dalam tanda kurung dan diikuti oleh daftar perintah yang akan dieksekusi jika polanya cocok dengan ekspresi. Titik titik koma ganda (;;) menunjukkan akhir dari setiap daftar perintah. Itu *) Pola cocok dengan ekspresi apa pun yang tidak cocok dengan pola sebelumnya, dan Default_Commands dieksekusi dalam kasus itu.

Menggunakan Pernyataan Kasus di Bash

Pernyataan kasus dalam bash sangat berguna ketika Anda ingin membandingkan variabel dengan daftar nilai yang mungkin terjadi. Berikut adalah contoh yang menunjukkan bagaimana Anda dapat menggunakan pernyataan kasus untuk memeriksa nilai variabel lingkungan $ pengguna:

case $ user in root) echo "Anda masuk sebagai root.";; ubuntu) gema" Anda masuk sebagai ubuntu.";; *) echo" Anda masuk sebagai pengguna yang tidak dikenal.";; esac
12345678case $ user in root) echo "Anda masuk sebagai root.";; ubuntu) gema" Anda masuk sebagai ubuntu.";; *) echo" Anda masuk sebagai pengguna yang tidak dikenal.";; esac

Dalam contoh ini, ekspresi yang diuji adalah nilai dari $ Pengguna Variabel Lingkungan. Polanya adalah nilai yang mungkin $ Pengguna (root dan ubuntu), dan pola default adalah *) pola, yang cocok dengan nilai apa pun yang bukan root atau ubuntu.

Pernyataan kasus dengan argumen baris perintah

Anda juga dapat menggunakan pernyataan kasus untuk memproses argumen baris perintah dalam skrip bash. Berikut adalah contoh yang menunjukkan cara menggunakan pernyataan kasus untuk menangani opsi baris perintah yang berbeda:

Sedangkan getopts "a: b: c:" opt; lakukan kasus $ opt in a) echo "Opsi A dilewatkan dengan argumen $ oparg" ;; b) echo "Opsi B dilewatkan dengan argumen $ OPTARG" ;; c) echo "Opsi C disahkan dengan argumen $ OPTARG" ;; *) echo "Opsi tidak valid: -$ OptArg" ;; ESAC selesai
123456789101112Sedangkan getopts "a: b: c:" opt; lakukan kasus $ opt in a) echo "Opsi A dilewatkan dengan argumen $ oparg" ;; b) echo "Opsi B dilewatkan dengan argumen $ OPTARG" ;; c) echo "Opsi C disahkan dengan argumen $ OPTARG" ;; *) echo "Opsi tidak valid: -$ OptArg" ;; Esacdone

Dalam contoh ini, Getopts Perintah digunakan untuk memproses opsi baris perintah. Pernyataan kasus digunakan untuk menangani setiap opsi (A, B, dan C) dan argumen yang sesuai. Pola default (*) digunakan untuk menangani opsi yang tidak valid.

Pernyataan kasus dengan ekspresi reguler

Ekspresi reguler yang digunakan dalam pernyataan kasus dilampirkan dalam kurung persegi ([]). Ini karena kami menggunakan kelas karakter untuk mencocokkan berbagai jenis karakter. Itu + tanda setelah pola kedua digunakan untuk mencocokkan satu atau lebih kejadian dari pola sebelumnya (dalam hal ini, huruf kecil). Ekspresi reguler bisa sangat rumit, dan ada banyak fitur dan opsi yang dapat Anda gunakan di Bash untuk mencocokkan pola.

Berikut adalah contoh bagaimana Anda dapat menggunakan ekspresi reguler dengan pernyataan kasus di Bash:

#!/bin/bash baca -p "Masukkan string:" str string $ str in [a-z] [0-9]) echo "String dimulai dengan huruf kecil dan berakhir dengan angka.";; [a-z] [a-z]+) echo" String dimulai dengan huruf besar dan diikuti oleh huruf kecil.";; [0-9]+) echo" String hanya berisi angka.";; *) gema" String tidak cocok dengan polanya.";; esac
123456789101112131415161718#!/bin/bash baca -p "Masukkan string:" str string $ str in [a-z] [0-9]) echo "String dimulai dengan huruf kecil dan berakhir dengan angka.";; [a-z] [a-z]+) echo" String dimulai dengan huruf besar dan diikuti oleh huruf kecil.";; [0-9]+) echo" String hanya berisi angka.";; *) gema" String tidak cocok dengan polanya.";; esac

Dalam contoh ini, kami menggunakan ekspresi reguler untuk mencocokkan pola string yang berbeda. Pola pertama cocok dengan string yang dimulai dengan huruf kecil dan berakhir dengan angka, seperti A1, B2, dan sebagainya. Pola kedua cocok dengan string yang dimulai dengan huruf besar dan diikuti oleh satu atau lebih huruf kecil, seperti halo, dunia, dan sebagainya. Pola ketiga cocok dengan string yang hanya berisi angka, seperti 123, 4567, dan sebagainya. Pola default cocok dengan string apa pun yang tidak cocok dengan pola sebelumnya.

Saat skrip dijalankan, itu meminta pengguna untuk memasukkan string. String kemudian diuji terhadap pola yang berbeda menggunakan pernyataan kasus. Jika suatu pola cocok, pesan yang sesuai ditampilkan. Jika tidak ada pola yang cocok, pesan default ditampilkan.

Kesimpulan

Pernyataan kasus dalam Bash adalah alternatif yang kuat dan efisien untuk menggunakan beberapa pernyataan IF-Then. Ini memungkinkan Anda untuk menguji variabel terhadap daftar nilai yang mungkin dan menjalankan perintah yang berbeda berdasarkan pola pencocokan. Pernyataan kasus ini sangat berguna ketika Anda ingin memproses argumen baris perintah atau membandingkan variabel dengan daftar nilai yang mungkin terjadi. Dengan menggunakan pernyataan kasus, Anda dapat menulis lebih ringkas dan mudah dibaca