Cara Membuat dan Memanggil Fungsi di Bash

Panduan cepat 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 ulang kode tingkat tinggi.

Bash menyediakan beberapa fungsi bawaan seperti echo dan read, tapi kita juga bisa 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, misalnya:


functionName(){ // scope of function }

Versi ringkas:



functionName(){ echo 'hello'; }

Cara lain adalah dengan mendeklarasikan fungsi menggunakan function kata kunci:

function functionName { // scope of function }

Versi ringkas:

function functionName { echo 'hello'; }

Perhatikan bagaimana kita tidak membutuhkan () saat menggunakan function kata kunci untuk membuat fungsi.


Poin penting yang perlu diperhatikan tentang fungsi Bash:

  • Kode di antara tanda kurung kurawal {} adalah fungsi tubuh dan ruang lingkup
  • Saat memanggil suatu fungsi, kami hanya menggunakan nama fungsi dari mana saja di skrip bash
  • Fungsi harus ditentukan sebelum dapat digunakan
  • Saat menggunakan versi ringkas, perintah terakhir harus memiliki titik koma ;

Contoh:

Kode berikut membuat fungsi yang mencetak 'Hello World' ke konsol. Nama fungsinya dipanggil printHalo :

#!/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 fungsinya dan itu akan dipanggil.


Sebagai contoh:

#!/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. Kapan pun kita menyebutnya, kita 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 hal ini.


Pertama kita bisa memodifikasi printHello() berfungsi untuk mencetak argumen yang diteruskan kepadanya:

Sebagai contoh:

#!/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 menampilkan 'Halo, Saya'.


Ini karena fungsi kita dirancang untuk hanya mengambil 1 parameter $1. Kata “Saya suka coding!” sebenarnya 3 parameter.

Jika kami ingin mencetak semuanya, kami perlu memberi tanda kutip di sekitar teks

Sebagai contoh:

#!/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.

Sebagai contoh:

#!/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 hasil ke variabel yang dapat digunakan jika diperlukan.

Sebagai contoh:

#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result

Keluaran:

The sum is: 3