TeknoCerdas.com – Salam cerdas untuk kita semua. Bash adalah salah satu shell yang paling populer yang digunakan saat ini. Tidak hanya pengembang di Linux dan macOS, pengembang di Windows pun sekarang banyak yang menggunakan Bash. Selain sebagai shell untuk mengetikkan perintah yang akan dieksekusi oleh OS, Bash juga dapat dikategorikan sebagai bahasa pemrograman karena memiliki fitur-fitur yang dibutuhkan. Salah satu fitur Bash untuk mempermudah pembuatan shell script adalah fungsi. Tulisan ini akan membahas bagaimana membuat fungsi pada Bash.
Tidak ada keyword atau kata kunci khusus ketika mendeklarasikan fungsi pada bash. Syntax yang digunakan adalah:
NAMA_FUNGSI()
{
# Logika dari fungsi disini.
}
Baca Juga
Cek Saldo dan Mutasi Bank BCA dengan Bash
Mari kita buat sebuah fungsi sederhana bernama hello_name()
yang akan mencetak nama yang dikirikan dari argumen pertama.
$ hello_name()
{
echo "$1"
}
Argumen pada fungsi sama dengan ketika menggunakan shell script. Dimana variabel $1
untuk argumen pertama, $2
untuk kedua dan seterusnya. Sekarang mari kita panggil fungsi tersebut.
$ hello_name TeknoCerdas
Hello TeknoCerdas
Pada shell scripting salah satu hal yang krusial adalah menentukan exit code atau exit status. Apakah bisa dilakukan pada fungsi? Bisa yaitu dengan kata kunci return
.
$ is_superuser()
{
[[ "$( whoami )" = "root" ]] && return 0
return 1
}
Sama seperti konsep exit code file shell script pada fungsi return 0
mengindikasikan bahwa fungsi mengembalikan nilai true
atau success. Selain nol maka false
.
Sehingga jika dijalankan fungsi is_superuser()
dapat digunakan sebagai pengecekan kondisi.
$ whomai
rioastamal
$ is_superuser && echo "YES" || echo "NO"
NO
Keyword return
tidak mengenal exit code dengan argumen string. Lalu bagaimana jika ingin sebuah fungsi mengembalikan sebuah string. Mudah saja, lakukan echo
atau tampilkan apapun sebagai output akhir. Sehingga fungsi tersebut layaknya sebuah program lain.
$ myip()
{
curl -s -q wtfismyip.com/text
}
$ myip
36.84.110.137
Fungsi tersebut adalah mendapatkan IP public dari komputer. Contoh lain misal ingin menghasilkan random string dengan panjang tertentu.
$ random_string()
{
local NUM_OF_CHARS=$1
[[ -z "$NUM_OF_CHARS" ]] && NUM_OF_CHARS=32
cat /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&' | head -c $NUM_OF_CHARS
}
$ random_string 64
Jb2dhazp0QY6&4yY5Z6^VMCV1lRWpfmWkpq5j^xcDzGN5O1q#xp1$XmydpN6zH0H
Pada fungsi random_string
kita menggunakan keyword local
artinya variabel NUM_OF_CHARS
hanya berlaku pada lingkup fungsi itu saja. Karakter random yang dikembalikan tergantung argumen pertama, jika tidak diberikan maka defaultnya adadalah 32 karakter.