在 Bash 中,变量默认是全局的,即在脚本的任何位置(包括函数内部)都可以访问和修改。局部变量使用 local 关键字在函数内部声明,仅在该函数及其调用的子函数中可见。
1. 全局变量
默认情况下,所有变量都是全局的。
#!/bin/bash
global_var="我是全局变量"
myfunc() {
echo "函数内: $global_var"
global_var="函数内修改了"
}
myfunc
echo "函数外: $global_var"
输出:
函数内: 我是全局变量
函数外: 函数内修改了
全局变量的作用域包括脚本主体、所有函数以及被脚本调用的其他脚本(如果使用 source)。
2. 局部变量
使用 local 关键字在函数内部声明的变量为局部变量,只在当前函数内有效。子函数可以访问父函数的局部变量(除非子函数也声明了同名局部变量)。
#!/bin/bash
myfunc() {
local local_var="我是局部变量"
echo "函数内: $local_var"
}
myfunc
echo "函数外:

394

被折叠的 条评论
为什么被折叠?



