我正在通过一些在线教程学习 shell 脚本,我来到了以下声明全局变量和局部变量差异的脚本。
#!/bin/bash
# Experimenting with variable scope
var_change () {
local var1='local 1'
echo Inside function: var1 is $var1 : var2 is $var2
var1='changed again'
var2='changed again'
}
var1='global 1'
var2='global 2'
echo Before function call: var1 is $var1 : var2 is $var2
var_change
echo After function call: var1 is $var1 : var2 is $var2
Run Code Online (Sandbox Code Playgroud)
输出是:
函数调用前:var1 是全局 1:var2 是全局 2
内部函数:var1 是本地 1:var2 是全局 2
函数调用后:var1 是全局的 1:var2再次改变 …