我在CentOS上的/etc/init.d/functions中發現了以下代碼。Shell腳本:「本地foo」和「本地foo =」有區別嗎?
status() {
local base pid lock_file= pid_file=
...
4個變量被聲明。 其中兩個未初始化,base和pid。 但其餘的部分都是用空值,lock_file和pid_file初始化的。
我測試了下面的代碼,發現沒有區別。
local a b=
echo "a is $a, length is ${#a}"
echo "b is $b, length is ${#b}"
它們之間有什麼區別嗎?
本地是功能,對嗎?如果在函數外部設置了「foo」的值,會發生什麼? (我沒有bash方便測試)。祝你好運。 – shellter 2012-08-10 23:35:51
與其他語言一樣,我們不能從「本地聲明語句」引用外部變量。所以如果你聲明局部變量的外部名稱相同,它將被視爲其他變量。 – taichino 2012-08-13 05:01:36