我想避免使用全局变量来防止脚本的意外行为,并且我发现bash中存在局部变量。通过测试局部变量,我发现:
此代码有效。
#!/bin/bash
foo() {
local a=$1
let a=$a+5
let $2=a
}
boo() {
local b
foo 5 b
echo "$b"
}
boo # Will print 10
但是此其他代码不起作用。
#!/bin/bash
foo() {
local a=$1
let a=$a+5
let $2=a
}
boo() {
local a
foo 5 a
echo "$a"
}
boo # Will print blank
为什么会这样?
然后,即使具有局部变量,我是否也必须为所有变量使用不同的名称?
那我使用局部变量而不是全局变量会得到什么?