0
如果我做解析函數參數的目的是什麼?
#!/bin/bash
a=2
func() {
echo $a
echo $b
}
b=3
func $b
然後打印2\n3
,在那裏我會只3
預期。
問題
當全局可用的內部功能。在BASH中解析參數的目的是什麼?
如果我做解析函數參數的目的是什麼?
#!/bin/bash
a=2
func() {
echo $a
echo $b
}
b=3
func $b
然後打印2\n3
,在那裏我會只3
預期。
問題
當全局可用的內部功能。在BASH中解析參數的目的是什麼?
您將參數傳遞給函數,以便它們可以使用不同的參數值。
您的代碼沒有使用傳遞的參數,而是使用全局變量。考慮替代:
#!/bin/bash
a=2
b=3
func() {
echo $1
}
func ${a}
func ${b}
產量:
2
3
擊不喜歡這個工作。 你沒有在函數中使用任何參數。相反,你剛剛初始化了兩個全局變量,你稍後在函數中迴應。
爲了做你需要,你應該做什麼以下幾點:
#!/bin/bash
a=2
func() {
# first argument
echo $1
# second argument
echo $2
}
b=3
func $b
func $a $b
輸出:
3
2
3
功能之外聲明的變量將永遠是全球性的。 – devnull 2013-04-08 13:10:46