Unix / Linux - Pengambilan Keputusan
Hai, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalam ke dunia yang menarik pengambilan keputusan dalam skrip shell Unix dan Linux. Sebagai guru komputer tetangga yang ramah, saya di sini untuk mengarahkan Anda dalam perjalanan ini, langkah demi langkah. Jadi, ambil minuman kesukaan Anda, duduk nyaman, dan mari kita mulai petualangan ini bersama!
Statement if...else
Bayangkan Anda di persimpangan di dalam kode Anda, dan Anda perlu membuat keputusan berdasarkan beberapa kondisi. Itu di mana statement if...else
sangat berguna. Mereka seperti lampu lalu lintas dalam pemrograman, memandu kode Anda ke jalur yang berbeda berdasarkan apakah kondisi benar atau salah.
Statement if Dasar
mari kita mulai dengan bentuk paling sederhana dari statement if
:
if [ condition ]
then
command1
command2
...
commandN
fi
Ini adalah contoh dari dunia nyata:
#!/bin/bash
age=18
if [ $age -ge 18 ]
then
echo "Anda cukup umur untuk pemilihan!"
fi
Dalam contoh ini, kita memeriksa jika variabel age
lebih besar atau sama dengan 18. Jika itu benar, pesan "Anda cukup umur untuk pemilihan!" akan ditampilkan.
Statement if...else
Apa bila kita ingin melakukan sesuatu saat kondisi salah? Itu di mana klausa else
dimasukkan:
if [ condition ]
then
command1
command2
...
commandN
else
alternative_command1
alternative_command2
...
alternative_commandN
fi
mari kita modifikasi contoh pemilihan kita:
#!/bin/bash
age=16
if [ $age -ge 18 ]
then
echo "Anda cukup umur untuk pemilihan!"
else
echo "Maaf, Anda terlalu muda untuk pemilihan."
fi
Sekarang, jika umur kurang dari 18, ia akan menampilkan pesan "Maaf, Anda terlalu muda untuk pemilihan."
Statement if...elif...else
kadang-kadang, kehidupan (dan kode) tidak hanya hitam dan putih. Kita sering perlu memeriksa beberapa kondisi. Itu di mana klausa elif
(else if) dimasukkan:
if [ condition1 ]
then
command1
elif [ condition2 ]
then
command2
else
alternative_command
fi
mari kita buat contoh yang lebih kompleks:
#!/bin/bash
grade=75
if [ $grade -ge 90 ]
then
echo "A - Excelent!"
elif [ $grade -ge 80 ]
then
echo "B - Bagus!"
elif [ $grade -ge 70 ]
then
echo "C - Anda lulus."
else
echo "F - Anda perlu belajar lebih banyak."
fi
Skrip ini mengevaluasi nilai siswa dan memberikan umpan balik yang sesuai berdasarkan rentang nilai yang berbeda.
Statement case...esac
mari bayangkan Anda di buffet dengan banyak pilihan makanan. Itu seperti statement case...esac
dalam pemrograman. Itu memungkinkan Anda untuk mencocokkan nilai melawan daftar pola dan menjalankan perintah berdasarkan kecocokan.
Sinkronisasi dasar terlihat seperti ini:
case expression in
pattern1)
command1
command2
...
commandN
;;
pattern2)
command1
command2
...
commandN
;;
*)
default_command
;;
esac
mari lihat contoh praktis:
#!/bin/bash
fruit="apple"
case $fruit in
"apple")
echo "Itu buah merah yang lezat!"
;;
"banana")
echo "Itu buah kuning yang melengkung!"
;;
"orange")
echo "Itu buah citrus yang manis!"
;;
*)
echo "Saya tidak mengenal buah itu."
;;
esac
Dalam contoh ini, kita mencocokkan nilai fruit
melawan pola yang berbeda. Jika cocok dengan "apple", ia akan mencetak pesan yang sesuai. Jika tidak cocok dengan pola yang ditentukan, ia akan menjalankan kasus default (*
).
Beberapa Pola
Anda juga dapat mencocokkan beberapa pola untuk set perintah yang sama:
#!/bin/bash
day=$(date +%A)
case $day in
Monday|Tuesday|Wednesday|Thursday|Friday)
echo "Itu hari kerja. Waktu untuk kerja!"
;;
Saturday|Sunday)
echo "Itu akhir minggu. Waktu untukerehat!"
;;
*)
echo "Dimana Anda berada?"
;;
esac
Skrip ini memeriksa hari dalam minggu saat ini dan mengoutputkan apakah itu adalah hari kerja atau akhir minggu.
Perbandingan if...else dan case...esac
Sekarang, mari kita bandingkan dua struktur pengambilan keputusan ini:
Fitur | if...else | case...esac |
---|---|---|
Kompleksitas | Dapat menangani kondisi kompleks | Terbaik untuk pemadanan nilai sederhana |
Bacaan | Dapat sulit dibaca dengan banyak kondisi | Lebih mudah dibaca dengan banyak kondisi |
Performa | Lebih lambat untuk banyak kondisi | Lebih cepat untuk banyak kondisi |
Fleksibilitas | Dapat menggunakan jenis kondisi apa saja | Terbatas ke pemadanan pola |
Dalam tahun-tahun mengajar saya, saya menemukan bahwa siswa sering kesulitan memilih antara if...else
dan case...esac
. Ini adalah aturan jari mudah: jika Anda memeriksa variabel tunggal melawan nilai yang berbeda, case...esac
adalah teman Anda. Untuk hal lainnya, tetap gunakan if...else
.
Ingat, pemrograman adalah seperti memasak. Struktur pengambilan keputusan ini adalah bahan baku Anda, dan dengan latihan, Anda akan belajar saat untuk menggunakan masing-masing untuk menciptakan makanan... saya mean, skrip!
Akhirnya, pengambilan keputusan adalah aspek penting dalam skrip shell. Itu memungkinkan skrip Anda untuk beradaptasi dan merespon situasi yang berbeda, membuat mereka lebih kuat dan fleksibel. Apakah Anda menggunakan if...else
atau case...esac
, Anda sekarang dilengkapi dengan alat untuk membuat skrip Anda cerdas. Terus latihan, dan segera Anda akan menulis skrip yang dapat membuat keputusan lebih cepat dari apa yang Anda katakan "sudo"!
Credits: Image by storyset