Panduan singkat tentang cara membuat dan memanggil fungsi di Bash.
Fungsi adalah blok kode yang dapat digunakan kembali yang digunakan untuk melakukan beberapa tindakan. Dengan fungsi, kami mendapatkan modularitas yang lebih baik dan penggunaan kembali kode tingkat tinggi.
Bash menyediakan beberapa fungsi bawaan seperti echo
dan read
, tetapi kita juga dapat membuat fungsi kita sendiri.
Membuat Fungsi di Bash
Ada dua cara untuk membuat fungsi di Bash:
Salah satu caranya adalah dengan hanya menggunakan nama fungsi, mis:
functionName(){
// scope of function
}
Versi ringkas:
functionName(){ echo "hello"; }
Cara lain adalah mendeklarasikan fungsi menggunakan function
kata kunci:
function functionName {
// scope of function
}
Versi ringkas:
function functionName { echo "hello"; }
Perhatikan bagaimana kita tidak memerlukan ()
saat menggunakan function
kata kunci untuk membuat fungsi.
Poin penting yang perlu diperhatikan tentang fungsi Bash:
- Kode di antara kurung kurawal
{}
adalah badan fungsi dan ruang lingkup - Saat memanggil suatu fungsi, kami hanya menggunakan nama fungsi dari mana saja di skrip bash
- Fungsi harus didefinisikan sebelum dapat digunakan
- Saat menggunakan versi ringkas, perintah terakhir harus memiliki tanda titik koma
;
Contoh:
Kode berikut membuat fungsi yang mencetak "Hello World" ke konsol. Nama fungsinya disebut printHello :
#!/bin/bash
printHello(){
echo "Hello World!"
}
Memanggil Fungsi di Bash
Bagaimana kita memanggil fungsi di atas? Yang perlu Anda lakukan di skrip bash Anda adalah menulis nama fungsi dan itu akan dipanggil.
Misalnya:
#!/bin/bash
printHello(){
echo "Hello World!"
}
# Call printHello function from anywhere in the script by writing the name
printHello
Keluaran:
"Hello World"
Meneruskan Argumen
Fungsi di atas printHello()
tidak memiliki parameter apa pun. Setiap kali kami memanggilnya, kami mendapatkan output "Hello World". Tetapi bagaimana jika kita ingin membuat fungsi yang lebih umum? Misalnya kita dapat memanggil fungsi dengan beberapa argumen dan itu akan mencetak apa yang kita kirim ke sana.
Ada dua cara untuk melakukan ini.
Pertama kita bisa memodifikasi printHello()
fungsi untuk mencetak argumen yang diteruskan ke sana:
Misalnya:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny World
printAny DevQa
printAny I love coding!
Keluaran:
Hello World
Hello DevQA
Hello I
Perhatikan bagaimana pernyataan cetak ketiga printAny I love coding!
hanya mengeluarkan “Halo, saya”.
Ini karena fungsi kami dirancang untuk hanya mengambil 1 parameter $1
. Kata "Saya suka coding!" sebenarnya adalah 3 parameter.
Jika kita ingin mencetak semuanya, kita perlu memberi tanda kutip di sekitar teks
Misalnya:
#!/bin/bash
printAny(){
echo "Hello " $1
}
printAny "I love coding!"
Keluaran:
Hello I love coding
Contoh lain, kita juga bisa memasukkan angka:
#!/bin/bash
add() {
result=$(($1 + $2))
echo "Result is: $result"
}
add 1 2
Keluaran:
Result is: 3
Mengembalikan Nilai
Fungsi bash juga dapat mengembalikan nilai.
Misalnya:
#!/bin/bash
add() {
result=$(($1 + $2))
}
add 1 2
echo "The sum is: "$result
Keluaran:
The sum is: 3
Cara lain untuk mengembalikan nilai dari suatu fungsi adalah dengan menetapkan hasilnya ke variabel yang dapat digunakan saat dan saat dibutuhkan.
Misalnya:
#!/bin/bash
add () {
local result=$(($1 + $2))
echo "$result"
}
result="$(add 1 2)"
echo "The sum is: "$result
Keluaran:
The sum is: 3