全域變數與區域變數的宣告有底下兩件事情要注意
範例:
#!/bin/sh
var0="global_var0"
function local_var()
{
declare -p var0
var1="global_var1"
declare -p var1
}
declare -p var0
local_var
declare -p var1
結果:
declare -- var0="global_var0"
declare -- var0="global_var0"
declare -- var1="global_var1"
declare -- var1="global_var1"
說明:
範例中使用 declare -p 來看變數是否存在,在 shell script 內宣告的 var0,在 local_var() 函式也是存在,表示 var0 是全域變數。而 var1 是在 local_var() 函式內宣告,但是離開 local_var() 函式後,var1 還是存在,表示 var1 也是全域變數。
2. 區域變數需要使用 local Command 來宣告,但只有函式 function 內可以使用 local Command 來宣告區域變數。
範例:
#!/bin/sh
function local_var()
{
local var1="global_var1"
}
local_var
declare -p var1
local var0="global_var0"
結果:
./local_cmd2.sh: line 9: declare: var1: not found
./local_cmd2.sh: line 11: local: can only be used in a function
說明:
1. var1 是在 local_var() 函式內宣告,離開 local_var() 函式後,var1 不存在,表示 var1 是區域變數。
2. 在 shell script 內使用 local Command 宣告 var0 發生錯誤,因為 local Command 只能在函式 function 中被使用。
好站連結
1. http://linux.vbird.org/linux_basic/0320bash.php#variable_range
好站連結
1. http://linux.vbird.org/linux_basic/0320bash.php#variable_range
沒有留言:
張貼留言