如何宣告函數的局部變數?定期聲明的變數會導出到全域範圍。例子:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
答案1
使用local
:
local x=bar
然後,x
將成為該函數的本機函數。若要宣告例如陣列或數字,local
請採用與 相同的選項declare
。輸出將是兩個空白行:
#!/bin/bash
function locals_test()
{
local x=bar
}
echo $x
locals_test
echo $x