Unix / Linux - Keputusan Shell

Hai, para pemula programmer! Hari ini, kita akan melihat dunia yang menarik dari keputusan dalam skrip shell Unix dan Linux. Sebagai guru komputer tetangga yang ramah, saya disini untuk mengajarkan Anda perjalanan ini, langkah demi langkah. Jadi, ambil minuman favorit Anda, betahkan diri, dan mari kita mulai petualangan ini bersama!

Unix / Linux - Decision Making

Statement if...else

Bayangkan Anda di persimpangan di kode Anda, dan Anda perlu membuat keputusan berdasarkan beberapa kondisi. Itu adalah tempat 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 sudah cukup umur untuk memesan!"
fi

Dalam contoh ini, kita memeriksa apakah variabel age lebih besar atau sama dengan 18. Jika ya, pesan "Anda sudah cukup umur untuk memesan!" akan ditampilkan.

Statement if...else

Apa bila kita ingin melakukan sesuatu saat kondisi salah? Itu adalah tempat klausa else masuk:

if [ condition ]
then
command1
command2
...
commandN
else
alternative_command1
alternative_command2
...
alternative_commandN
fi

Mari kita modifikasi contoh pemilihan:

#!/bin/bash
age=16

if [ $age -ge 18 ]
then
echo "Anda sudah cukup umur untuk memesan!"
else
echo "Maaf, Anda masih terlalu muda untuk memesan."
fi

Sekarang, jika umur kurang dari 18, itu akan menampilkan pesan "Maaf, Anda masih terlalu muda untuk memesan."

Statement if...elif...else

kadang-kadang, kehidupan (dan kode) tidaklah hanya hitam dan putih. Kita sering perlu memeriksa beberapa kondisi. Itu adalah tempat klausa elif (else if) masuk:

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

Bayangkan Anda di buffet dengan banyak pilihan makanan. Itu seperti statement case...esac dalam pemrograman. Itu memungkinkan Anda untuk mencocokkan nilai terhadap daftar pola dan menjalankan perintah berdasarkan kecocokan.

Sintaks dasar terlihat seperti ini:

case expression in
pattern1)
command1
command2
...
commandN
;;
pattern2)
command1
command2
...
commandN
;;
*)
default_command
;;
esac

Mari kita 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 jeruk yang manis!"
;;
*)
echo "Saya tidak tahu buah itu."
;;
esac

Dalam contoh ini, kita mencocokkan nilai fruit terhadap pola yang berbeda. Jika cocok dengan "apple", pesan yang sesuai akan ditampilkan. Jika tidak cocok dengan pola yang ditentukan, itu akan menjalankan kasus default (*).

Beberapa pola

Anda juga dapat mencocokkan beberapa pola untuk menjalankan satu set perintah:

#!/bin/bash
day=$(date +%A)

case $day in
Monday|Tuesday|Wednesday|Thursday|Friday)
echo "Ini hari kerja. Waktu untuk kerja!"
;;
Saturday|Sunday)
echo "Ini akhir pekan. Waktu untuk berehat!"
;;
*)
echo "Di planet mana Anda?"
;;
esac

Skrip ini memeriksa hari dalam minggu saat ini dan mengoutputkan apakah itu hari kerja atau akhir pekan.

Perbandingan antara if...else dan case...esac

Sekarang, mari kita bandingkan dua struktur keputusan ini:

Fitur if...else case...esac
Kompleksitas Dapat menangani kondisi kompleks Terbaik untuk pencocokan nilai sederhana
Bacaan Dapat sulit dibaca dengan banyak kondisi Lebih mudah dibaca dengan banyak kondisi
Performa Sedikit lambat untuk banyak kondisi Lebih cepat untuk banyak kondisi
Fleksibilitas Dapat menggunakan jenis kondisi apa saja Terbatas ke pencocokan pola

Dalam tahun-tahun mengajar saya, saya sering melihat murid-murid berjuang untuk memilih antara if...else dan case...esac. Ini adalah aturan jitu: jika Anda memeriksa variabel tunggal terhadap nilai yang berbeda, case...esac adalah teman Anda. Untuk yang lainnya, tinggal dengan if...else.

Ingat, pemrograman adalah seperti memasak. Struktur keputusan ini adalah bahan-bahan Anda, dan dengan latihan, Anda akan belajar saat untuk menggunakan masing-masing untuk menciptakan makanan... ya, saya bermaksud skrip! Tetap latihan, dan segera Anda akan menulis skrip yang dapat membuat keputusan lebih cepat dari apa yang Anda katakan "sudo"!

Credits: Image by storyset