Pernyataan Bersyarat: `if`, `else`, `case`
Laksanakan logik membuat keputusan dalam skrip anda menggunakan pelbagai binaan bersyarat.
Pernyataan Bersyarat: `if`, `else`, `case` ialah pelajaran Penguasaan Baris Perintah Linux percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Baris Perintah Linux, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux merangkumi sejumlah 4 pelajaran.
Membuat Keputusan dalam Skrip
Dalam penskripan shell, sama seperti dalam kehidupan, anda sering perlu membuat keputusan. Pernyataan bersyarat membolehkan skrip anda melaksanakan perintah yang berbeza berdasarkan sama ada syarat tertentu benar atau palsu.
Ini penting untuk menghasilkan skrip yang fleksibel dan berkuasa, yang boleh menyesuaikan diri dengan situasi atau input pengguna yang berbeza.
Pernyataan Asas `if`
Syarat paling mudah ialah pernyataan if. Pernyataan ini menyemak suatu syarat, dan jika syarat itu benar, ia melaksanakan sekumpulan perintah. Jika palsu, perintah tersebut dilangkau.
Sintaks asasnya kelihatan seperti ini:
if [ condition ]; then# commands to run if truefi
Ingat fi untuk menutup blok if!
Contoh `if` Mudah
Mari lihat pernyataan if mudah digunakan. Skrip ini menyemak sama ada pemboleh ubah num lebih besar daripada 5.
Cuba ubah nilai num untuk melihat perubahan pada output!
#!/bin/bash
num=7
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5."
fi
num=3
if [ "$num" -gt 5 ]; then
echo "Number is greater than 5. (This won't print)"
fi`if-else`: Dua Laluan
Bagaimana jika anda mahu melaksanakan satu set perintah apabila syarat benar, dan set yang berbeza apabila syarat itu palsu? Di sinilah else digunakan.
Pernyataan if-else menyediakan dua laluan berbeza untuk skrip anda:
if [ condition ]; then# commands if condition is trueelse# commands if condition is falsefi
Menggunakan `if-else`
Skrip ini menggunakan if-else untuk menentukan sama ada suatu nombor genap atau ganjil. Kami menggunakan penilaian aritmetik (( )) supaya perbandingan dan pengiraan nombor lebih jelas.
Operator % memberikan baki bagi suatu pembahagian. Jika num % 2 ialah 0, nombor itu genap!
#!/bin/bash
num=4
if (( num % 2 == 0 )); then
echo "$num is an even number."
else
echo "$num is an odd number."
fi
num=9
if (( num % 2 == 0 )); then
echo "$num is an even number. (This won't print)"
else
echo "$num is an odd number."
fi`elif`: Pelbagai Syarat
Kadang-kadang terdapat lebih daripada dua kemungkinan hasil. Untuk situasi ini, anda boleh menggunakan elif (singkatan bagi "else if") untuk menyemak berbilang syarat secara berturutan.
Skrip menyemak syarat satu demi satu. Perintah bagi syarat pertama yang benar akan dilaksanakan, manakala yang lain dilangkau.
if [ cond1 ]; then ...elif [ cond2 ]; then ...else ...fi
Rantaian `elif`
Berikut ialah contoh yang menggunakan if-elif-else untuk memberikan gred huruf berdasarkan skor. Perhatikan bahawa syarat disemak daripada skor tertinggi hingga terendah.
Jika skor ialah 95, syarat if pertama (>= 90) dipenuhi, lalu "A" dicetak. Blok elif dan else yang lain kemudiannya diabaikan.
#!/bin/bash
score=85
if [ "$score" -ge 90 ]; then
echo "Grade: A"
elif [ "$score" -ge 80 ]; then
echo "Grade: B"
elif [ "$score" -ge 70 ]; then
echo "Grade: C"
else
echo "Grade: F"
fi`case`: Pemilihan Mudah
Apabila anda mempunyai satu pemboleh ubah atau ungkapan yang boleh mempunyai banyak nilai, dan mahu melakukan tindakan yang berbeza bagi setiap nilai, pernyataan case biasanya lebih kemas berbanding rantaian if-elif-else yang panjang.
Ia amat berguna untuk skrip berasaskan menu atau untuk mengendalikan pilihan input tertentu.
case $variable inpattern1) commands ;;pattern2) commands ;;*) default commands ;;esac
Menggunakan Pernyataan `case`
Skrip ini menunjukkan cara menggunakan case untuk memberikan respons kepada tindakan pengguna yang berbeza (mula, berhenti, mulakan semula). Corak *) bertindak sebagai nilai lalai dan menangkap sebarang nilai yang tidak sepadan.
Setiap blok perintah berakhir dengan ;;, yang penting supaya pernyataan case berfungsi dengan betul.
#!/bin/bash
action="start"
case "$action" in
"start")
echo "Starting service..."
;;
"stop")
echo "Stopping service..."
;;
"restart")
echo "Restarting service..."
;;
*) # Default case for anything else
echo "Invalid action: $action"
;;
esac
action="status"
case "$action" in
"start") echo "Starting service..." ;;
"stop") echo "Stopping service..." ;;
"restart") echo "Restarting service..." ;;
*) echo "Invalid action: $action" ;;
esacCabaran Bersyarat
Baca skrip di bawah dengan teliti. Apakah output apabila skrip ini dijalankan?
#!/bin/bash
color="blue"
if [ "$color" == "red" ]; then
echo "It's a primary color."
elif [ "$color" == "yellow" ]; then
echo "It's another primary color."
elif [ "$color" == "blue" ]; then
echo "Yes, blue is primary!"
else
echo "Unknown color."
fiMembuat Keputusan dengan Mudah
Syabas! Anda telah mempelajari cara asas untuk menambahkan logik membuat keputusan pada skrip shell anda.
if: Melaksanakan perintah jika suatu syarat benar.if-else: Menyediakan dua laluan, satu untuk keadaan benar dan satu untuk keadaan palsu.elif: Membolehkan rantaian berbilang syarat untuk logik yang lebih kompleks.case: Cara yang kemas untuk mengendalikan berbilang pilihan berdasarkan satu nilai.
Binaan ini penting untuk menulis skrip yang boleh memberikan respons secara dinamik kepada input dan situasi yang berbeza.
Pelajari Penguasaan Baris Perintah Linux 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
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Pernyataan Bersyarat: `if`, `else`, `case`” percuma?
Ya — teks penuh “Pernyataan Bersyarat: `if`, `else`, `case`” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Penguasaan Baris Perintah Linux, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pernyataan Bersyarat: `if`, `else`, `case`”?
Laksanakan logik membuat keputusan dalam skrip anda menggunakan pelbagai binaan bersyarat. Anda berlatih Penguasaan Baris Perintah Linux 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 Penguasaan Baris Perintah Linux?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux 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 2 daripada 4.
Berapa lamakah pelajaran “Pernyataan Bersyarat: `if`, `else`, `case`” 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 Penguasaan Baris Perintah Linux ini?
Ya. Setiap pelajaran Penguasaan Baris Perintah Linux 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
- Pemboleh Ubah, Input dan Output
- Pernyataan Bersyarat: `if`, `else`, `case`
- Gelung: `for`, `while`, `until`
- Fungsi dan Argumen dalam Skrip Shell