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!

Unix / Linux - Decision Making

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