GNU/Linux >> Belajar Linux >  >> Linux

Cara Membuat dan Memanggil Fungsi di Bash

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

Linux
  1. Cara membuat dan menghapus grup pengguna di Linux

  2. Fungsi Dalam Variabel Shell?

  3. Bash Seri Pemula #9:Menggunakan Fungsi di Bash

  1. Cara mendefinisikan dan menggunakan fungsi di Linux Shell Script

  2. Cara membuat skrip Bash menggunakan variabel eksternal dan skrip yang disematkan

  3. Cara Memanggil Fungsi C di C++, Fungsi C++ di C (Campuran C dan C++)

  1. Fungsi Bash &Cara Menggunakannya {Variabel, Argumen, Pengembalian}

  2. Bagaimana Memanggil Fungsi Bash Dalam Skrip Bash Di Dalam Awk?

  3. Cara Membuat Keybinding Makro dan Fungsi Linux di File .intputrc