function afunc
{
echo in fnction: $0 $1 $2
var1="in function"
echo var1: $var1
}
var1="outside function"
echo var1: $var1
echo $0: $1 $2
afunc funcarg1 funcarg2
echo var1: $var1
echo $0: $1 $2
OUTPUT:
./ascript: arg1 arg2
in fnction: ./ascript funcarg1 funcarg2
var1: in function
var1: in function
./ascript: arg1 arg2
說明var1在afunc內部被改變了。shell的局部變量跟c語言有些差別,這里默認所有外部定義的變量,在函數內部可以訪問并且可以改變。即外部定義的變量默認為全局變量。
若想在afunc內部定義一個局部變量,則需要顯式的加上local var1.
待續