Pada artikel ini saya akan menjelaskan seputar shell functions, bagaimana cara mendefinisikan suatu fungsi pada Bash shell yang itu merupakan seperangkat perintah yang disusun sedemikian rupa agar bisa digunakan kembali pada bagian lain suatu script.
Struktur dasar
Sebuah fungsi dapat didefinisikan dengan susunan sebagai berikut:
|
|
Kedua bentuk diatas tidak memiliki perbedaan, namun sebagian ahli mengatakan bahwa bentuk kedua tidaklah portabel. Alias, tidak kompatibel dengan Bash shell versi lama.
Memanggil fungsi
Cara untuk memanggil fungsi tersebut adalah cukup dengan memanggil nama fungsi tersebut (tanpa kurung).
|
|
Diantara kesalahan orang-orang yang baru pertama kali menulis shell script adalah memanggil fungsi shell dengan diakhiri tanda ()
sebagaimana pada sintaks keumuman bahsa pemrograman.
|
|
Variabel global vs lokal
Pada dasarnya, setiap variabel yang didefinisikan di dalam variabel merupakan variabel lokal secara asal. Namun, Anda bisa mendefinisikannya secara eksplisit dengan sintaks local
.
Jika ada variabel global (yang sudah didefinisikan sebelum dan diluar fungsi) kemudian ada variabel dengan nama yang sama didefinisikan didalam fungsi tersebut (lokal), maka variabel lokal tersebut yang akan diutamakan.
|
|
Argumen/parameter pada fungsi
Argumen atau parameter pada shell bash direpresentasikan dengan variabel shell $1
, $2
, $3
dan seterusnya, menyesuaikan dengan posisi argumen tersebut. Penjelasan lebih terperinci ada pada artikel Belajar Bash Scripting: Shell Arguments.
|
|
Menentukan nilai return pada fungsi
Pada keumuman bahasa pemrograman, suatu fungsi dapat “mengembalikan” suatu nilai setelah dieksekusi. Itu bisa berupa string, integer, boolean atau yang lainnya.
Terkadang pula, untuk menentukan nilai return tersebut perlu mendeklarasikan jenis data yang akan dikembalikan tersebut.
Hal ini tidak berlaku pada shell scripting, terutama pada shell Bash. Semua command yang mengeluarkan outputnya pada stdout, maka itu bisa dianggap sebagai nilai return.
|
|
Sintaks return
Sintaks return
fungsinya tidak sebagaimana pada keumuman bahasa pemrograman (yaitu menentukan nilai balik suatu fungsi), tetapi ini berfungsi untuk keluar dari suatu fungsi tanpa menghentikan eksekusi script.
Misalnya, pada suatu fungsi terdapat pengkondisian seperti berikut ini:
|
|
Nilai yang didefinisikan setelah sintaks return
tersebut, adalah nilai exit. Ketentuannya adalah, jika nilai tersebut lebih dari nol, maka error terjadi.
Ini bisa dimanfaatkan untuk meniru nilai return boolean, seperti contoh berikut ini:
|
|
Tambahan, jika melihat penjelasan sintaks return
dari help return
, maka dijelaskan bahwa sintaks tersebut hanya bisa dieksekusi dari dalam suatu fungsi. Sehingga, ketika sintaks tersebut dijalankan diluar fungsi, maka akan ekluar eror:
|
|
Semoga bermanfaat, Barakallahufiikum.