Pernyataan case dan Pemadanan Corak
Buat percabangan dengan kemas berdasarkan banyak nilai. Pelajari pernyataan case, corak glob, padanan berbilang corak dan sebab ia lebih baik daripada rangkaian if-elif yang panjang.
Pernyataan case dan Pemadanan Corak ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Mengapa case?
Apabila pemboleh ubah boleh mempunyai banyak nilai, rantaian panjang if/elif/elif menjadi sukar dibaca. Pernyataan case memadankan nilai dengan corak dan jauh lebih mudah dibaca.
Sintaks Asas
Blok case menguji nilai terhadap corak, setiap satunya berakhir dengan ) dan badannya ditamatkan oleh ;;. Seluruh blok berakhir dengan esac.
case "$fruit" in
apple) echo "red";;
banana) echo "yellow";;
esacKes Lalai
Corak *) sepadan dengan apa-apa sahaja dan bertindak sebagai lalai yang meliputi semua keadaan seperti else.
case "$cmd" in
start) echo "starting";;
stop) echo "stopping";;
*) echo "unknown command";;
esacMemadankan Berbilang Corak
Gunakan | untuk memadankan beberapa corak dalam satu cabang.
case "$ans" in
y|Y|yes) echo "Confirmed";;
n|N|no) echo "Cancelled";;
esacCorak Glob
Corak menggunakan pemadanan glob shell, bukan ungkapan nalar: * sepadan dengan sebarang rentetan, ? dengan satu aksara dan [...] dengan kelas aksara.
case "$file" in
*.txt) echo "text file";;
*.jpg|*.png) echo "image";;
esacJulat Aksara
Corak kurungan memadankan julat, berguna untuk mengumpulkan nilai mengikut huruf atau digit pertama.
case "$ch" in
[a-z]) echo "lowercase";;
[0-9]) echo "digit";;
esacMenu Ringkas
case amat berguna dalam skrip berasaskan menu, apabila pengguna memilih satu pilihan.
read -p "Choice: " opt
case "$opt" in
1) backup;;
2) restore;;
*) echo "Invalid";;
esaccase berbanding if
Gunakan if untuk syarat Boolean yang kompleks (julat, perbandingan, beberapa pemboleh ubah). Gunakan case apabila membuat percabangan berdasarkan nilai atau corak satu pemboleh ubah.
Memetik Nilai
Letakkan nilai yang diuji ("$var") dalam tanda petikan supaya nilai kosong atau nilai yang mengandungi ruang dikendalikan dengan selamat.
case "$input" in
"") echo "empty";;
*) echo "got: $input";;
esacTerus Menilai dengan ;;&
Bash menyokong ;;& untuk meneruskan pengujian corak seterusnya selepas padanan, sekali gus membolehkan beberapa cabang dicetuskan.
case "$f" in
*.tar) echo "tar";;&
*.gz) echo "gzip";;
esacPenghantaran Argumen
Satu kegunaan dunia sebenar yang biasa: lakukan penghantaran berdasarkan argumen skrip pertama untuk melaksanakan subperintah seperti alat CLI.
case "$1" in
init) do_init;;
build) do_build;;
*) echo "usage: $0 {init|build}";;
esacSemakan Pantas
Uji pemahaman anda.
Ringkasan
Anda telah mempelajari pernyataan case: padankan nilai dengan corak glob, tamatkan cabang dengan ;;, gabungkan corak dengan |, gunakan *) sebagai lalai dan utamakan case berbanding rantaian if-elif yang panjang untuk penghantaran berdasarkan nilai dan argumen yang kemas.
Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Soalan Lazim
Adakah pelajaran “Pernyataan case dan Pemadanan Corak” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Pernyataan case dan Pemadanan Corak”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pernyataan case dan Pemadanan Corak”?
Buat percabangan dengan kemas berdasarkan banyak nilai. Pelajari pernyataan case, corak glob, padanan berbilang corak dan sebab ia lebih baik daripada rangkaian if-elif yang panjang. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Pernyataan case dan Pemadanan Corak” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?
Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Binaan Gelung (for, while)
- Fungsi dalam Skrip Bash
- Argumen dan Pilihan Skrip ($@, $#, getopts)
- Pernyataan case dan Pemadanan Corak