Saya ingin menulis fungsi yang dapat saya panggil dari skrip dengan banyak variabel berbeda. Untuk beberapa alasan saya mengalami banyak kesulitan dalam melakukan ini. Contoh yang saya baca selalu hanya menggunakan variabel global tetapi itu tidak akan membuat kode saya lebih mudah dibaca sejauh yang saya bisa lihat.
Contoh penggunaan yang dimaksudkan:
#!/bin/bash
#myscript.sh
var1=$1
var2=$2
var3=$3
var4=$4
add(){
result=$para1 + $para2
}
add $var1 $var2
add $var3 $var4
# end of the script
./myscript.sh 1 2 3 4
Saya mencoba menggunakan $1
dan fungsi seperti itu, tetapi kemudian hanya mengambil yang global dari seluruh script. Pada dasarnya apa yang saya cari adalah sesuatu $1
, $2
dan sebagainya, tetapi dalam konteks fungsi lokal. Seperti yang Anda ketahui, fungsi berfungsi dalam bahasa apa pun.
echo $1
danecho $2
di dalamnya.result =
dengan Andaresult=$(($1 + $2))
dan tambahkanecho $result
setelah itu dan berfungsi dengan benar, $ 1 dan $ 2 adalah argumen fungsi Anda.Jawaban:
Untuk memanggil fungsi dengan argumen:
Fungsi mengacu pada argumen yang diteruskan oleh posisi mereka (bukan dengan nama), yaitu $ 1, $ 2, dan sebagainya. $ 0 adalah nama skrip itu sendiri.
Contoh:
Keluaran
sumber
Dalam skrip utama $ 1, $ 2, mewakili variabel seperti yang sudah Anda ketahui. Dalam subskrip atau fungsi, $ 1 dan $ 2 akan mewakili parameter, diteruskan ke fungsi, sebagai variabel internal (lokal) untuk subskrip ini.
sumber