bagian#1 Belajar Command Line Interface Linux (BASH) - 17 perintah dasar
Daftar Isi:
- Deklarasi Fungsi Bash
- Lingkup Variabel
- Nilai Pengembalian
- Melewati Argumen ke Fungsi Bash
- Kesimpulan
Fungsi Bash pada dasarnya adalah serangkaian perintah yang dapat dipanggil berkali-kali. Tujuan suatu fungsi adalah untuk membantu Anda membuat skrip bash Anda lebih mudah dibaca dan untuk menghindari penulisan kode yang sama berulang-ulang.
Dibandingkan dengan sebagian besar bahasa pemrograman, fungsi Bash agak terbatas. Dalam tutorial ini, kami akan membahas dasar-dasar fungsi Bash dan menunjukkan kepada Anda bagaimana menggunakannya dalam skrip shell Anda.
Deklarasi Fungsi Bash
Sintaks untuk mendeklarasikan fungsi bash sangat sederhana. Mereka dapat dideklarasikan dalam dua format berbeda:
-
Format pertama dimulai dengan nama fungsi, diikuti oleh tanda kurung. Ini adalah format yang lebih disukai dan lebih banyak digunakan.
function_name () { commands }
Versi baris tunggal:
function_name () { commands; }
Format kedua dimulai dengan kata
function
reserved diikuti oleh nama fungsi.function function_name { commands }
Versi baris tunggal:
function function_name { commands; }
Beberapa poin yang perlu diperhatikan:
- Daftar perintah antara kurung kurawal
{}
adalah badan fungsi. Kurung kurawal yang mengelilingi fungsi tubuh harus dipisahkan dari tubuh oleh spasi atau baris baru. Mendefinisikan fungsi tidak menjalankannya. Untuk memanggil fungsi bash, cukup gunakan nama fungsi. Perintah di antara kurung kurawal dieksekusi setiap kali fungsi dipanggil dalam skrip shell. Definisi fungsi harus ditempatkan sebelum panggilan ke fungsi. Ketika menggunakan fungsi "dipadatkan" baris tunggal, titik koma;
harus mengikuti perintah terakhir dalam fungsi. Anda harus selalu berusaha menjaga agar nama fungsi tetap deskriptif.
Untuk memahami ini lebih baik, lihat contoh berikut:
~ / hello_world.sh
#!/bin/bash hello_world () { echo 'hello, world' } hello_world
Mari kita menganalisis kode baris demi baris:
- Pada baris
3
kita mendefinisikan fungsi dengan memberinya nama, dan membuka kurung kurawal{
yang menandai awal dari tubuh fungsi. Baris4
adalah badan fungsi. Function body dapat berisi banyak perintah dan deklarasi variabel. Baris5
, kurung kurawal penutup}
, menentukan akhir dari fungsihello_world
baris7
kita menjalankan fungsi. Anda dapat menjalankan fungsi sebanyak yang Anda butuhkan.
Jika Anda menjalankan skrip, itu akan mencetak
hello, world
.
Lingkup Variabel
Variabel global adalah variabel yang dapat diakses dari mana saja dalam skrip terlepas dari cakupannya. Di Bash, semua variabel secara default didefinisikan sebagai global, bahkan jika dideklarasikan di dalam fungsi.
Variabel lokal dapat dideklarasikan di dalam tubuh fungsi dengan kata kunci
local
dan hanya dapat digunakan di dalam fungsi itu. Anda dapat memiliki variabel lokal dengan nama yang sama di fungsi yang berbeda.
Untuk menggambarkan lebih baik bagaimana ruang lingkup variabel bekerja di Bash, mari kita pertimbangkan sebuah contoh:
~ / variable_scope.sh
#!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Inside function: var1: $var1, var2: $var2" } echo "Before executing function: var1: $var1, var2: $var2" my_function echo "After executing function: var1: $var1, var2: $var2"
Script dimulai dengan mendefinisikan dua variabel global
var1
dan
var2
. Kemudian fungsi yang menetapkan variabel lokal
var1
dan memodifikasi variabel global
var2
.
Before executing function: var1: A, var2: B Inside function: var1: C, var2: D After executing function: var1: A, var2: D
Dari hasil di atas, kita dapat menyimpulkan bahwa:
- Jika Anda menetapkan variabel lokal di dalam fungsi tubuh dengan nama yang sama dengan variabel global yang ada, itu akan didahulukan dari variabel global. Variabel global dapat diubah dari dalam fungsi.
Nilai Pengembalian
Tidak seperti fungsi dalam bahasa pemrograman "nyata", fungsi Bash tidak memungkinkan Anda untuk mengembalikan nilai saat dipanggil. Ketika fungsi bash selesai, nilai kembalinya adalah status pernyataan terakhir yang dieksekusi dalam fungsi,
0
untuk keberhasilan dan angka desimal bukan nol dalam rentang 1 - 255 untuk kegagalan.
Status pengembalian dapat ditentukan dengan menggunakan kata kunci
return
, dan ditetapkan ke variabel
$?
. Pernyataan
return
mengakhiri fungsi. Anda dapat menganggapnya sebagai status keluar fungsi.
#!/bin/bash my_function () { echo "some result" return 55 } my_function echo $?
some result 55
Untuk benar-benar mengembalikan nilai arbitrer dari suatu fungsi, kita perlu menggunakan metode lain. Opsi paling sederhana adalah menetapkan hasil fungsi ke variabel global:
~ / return_values.sh
#!/bin/bash my_function () { func_result="some result" } my_function echo $func_result
some result
Pilihan lain yang lebih baik untuk mengembalikan nilai dari suatu fungsi adalah mengirim nilai ke
stdout
menggunakan echo atau
printf
seperti yang ditunjukkan di bawah ini:
#!/bin/bash my_function () { local func_result="some result" echo "$func_result" } func_result="$(my_function)" echo $func_result
some result
Alih-alih hanya menjalankan fungsi yang akan mencetak pesan ke stdout, kami menugaskan output fungsi ke variabel
func_result
menggunakan substitusi perintah
$()
. Variabel nanti dapat digunakan sesuai kebutuhan.
Melewati Argumen ke Fungsi Bash
Untuk meneruskan sejumlah argumen ke fungsi bash cukup letakkan tepat di belakang nama fungsi, dipisahkan dengan spasi. Ini adalah praktik yang baik untuk mengutip dua kali argumen untuk menghindari salah mengartikan argumen dengan spasi di dalamnya.
- Parameter yang diteruskan adalah
$1
,$2
,$3
…$n
, sesuai dengan posisi parameter setelah nama fungsi. Variabel$0
dicadangkan untuk nama fungsi. Variabel$#
menyimpan jumlah parameter posisi / argumen yang diteruskan ke function$*
variabel$*
dan$@
menampung semua parameter posisi / argumen yang diteruskan ke fungsi.- Ketika dikutip ganda,
"$*"
meluas ke string tunggal yang dipisahkan oleh spasi (karakter pertama IFS) -"$1 $2 $n"
. Ketika dua kali dikutip,"$@"
memperluas ke string yang terpisah -"$1" "$2" "$n"
.Ketika tidak dikutip ganda,$*
dan$@
adalah sama.
- Ketika dikutip ganda,
Berikut ini sebuah contoh:
~ / passing_arguments.sh
#!/bin/bash greeting () { echo "Hello $1" } greeting "Joe"
Kesimpulan
Fungsi Bash adalah blok kode yang dapat digunakan kembali yang dirancang untuk melakukan operasi tertentu. Setelah ditentukan, fungsi dapat dipanggil beberapa kali dalam sebuah skrip.
Anda mungkin juga ingin membaca tentang cara menggunakan fungsi Bash untuk membuat perintah pintas yang mudah diingat untuk perintah yang lebih lama.
terminal bashLenovo Membawa Fungsi Wii ke PC

PC all-in-one Lenovo baru dilengkapi dengan remote control yang dapat digunakan sebagai pengendali game berbasis gerak. , seperti Nintendo Wii.
Kapsul Waktu: Kelas Tinggi, Fungsi Tinggi

Kapsul Waktu Apple menggabungkan penyimpanan jaringan, jembatan / router Wi-Fi 802.11n, dan berbagi printer USB dalam satu kotak kecil. Anda tidak dapat membayangkan kemungkinannya.
Ubah Fungsi Tombol Daya Laptop Anda

Apakah laptop Anda tidur saat Anda ingin mematikannya? Matikan ketika Anda ingin hibernate? Beginilah cara mengajari tombol daya siapa yang menjadi bos!