Tôi muốn viết một hàm mà tôi có thể gọi từ một tập lệnh với nhiều biến khác nhau. Vì một số lý do tôi gặp nhiều rắc rối khi làm việc này. Các ví dụ tôi đã đọc luôn chỉ sử dụng một biến toàn cục nhưng điều đó sẽ không làm cho mã của tôi dễ đọc hơn nhiều như tôi có thể thấy.
Ví dụ sử dụng dự định:
#!/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
Tôi đã thử sử dụng $1
và như vậy trong hàm, nhưng sau đó nó chỉ lấy toàn cục mà toàn bộ tập lệnh được gọi từ. Về cơ bản những gì tôi đang tìm kiếm là một cái gì đó như thế $1
, $2
v.v. nhưng trong bối cảnh cục bộ của một chức năng. Giống như bạn biết, các chức năng hoạt động trong bất kỳ ngôn ngữ thích hợp.
result =
bằng result=$(($1 + $2))
và thêm echo $result
sau khi nó hoạt động chính xác, $ 1 và $ 2 là các đối số chức năng của bạn.
echo $1
vàecho $2
trong đó.