Shell中局部变量和全局变量
在shell编程过程中,不同于其他编程语言,在一些高级编程语JAVA或Python过程中,在定义一个变量的时候,如果这个变量是在函数中声明的变量,那么在函数外面是不能直接使用这个变量的,也就是说在高级语言中变量是有作用域的。1、全局变量:不做特殊声明,Shell中变量都是全局变量Tips:大型脚本程序中函数慎用全局变量2、局部变量:定义变量时,使用local关键字函数内和外若存在同名变量,则函数内
·
在shell编程过程中,不同于其他编程语言,在一些高级编程语JAVA或Python过程中,在定义一个变量的时候,如果这个变量是在函数中声明的变量,那么在函数外面是不能直接使用这个变量的,也就是说在高级语言中变量是有作用域的。
1、全局变量:
不做特殊声明,Shell中变量都是全局变量
Tips:大型脚本程序中函数慎用全局变量
2、局部变量:
定义变量时,使用local关键字
函数内和外若存在同名变量,则函数内部变量覆盖外部变量
Tips:在写shell脚本的过程中尽量使用局部变量,如果没有定义局部变量,只要在整个脚本中对变量的名称进行一个很好的管理也是没有问的。
3、代码示例
(一) 全部变量实例
#!/bin/bash
var1="hello world"
function test
{
var2=87
}
echo $var1
# 由于没有调用test函数,var2变量没有生效
echo $var2
echo "----调用函数----"
test
echo $var1
echo $var2
# test1使用test定义的变量
function test1
{
echo $var2
}
test1
# 运行脚本,第一次var2值为空,第二次var2值输出正确
~ % sh 31.local_global_var.sh
hello world
----调用函数----
hello world
87
87
(二)局部变量实例
#!/bin/bash
var1="hello world"
function test
{
# 函数内部通过local定义局部变量
local var2=87
}
test
echo $var1
echo $var2
# 运行脚本,var2输出为空,因为var2变成局部变量只能在test函数中使用
~ % sh 31.local_global_var.sh
hello world
更多推荐
已为社区贡献12条内容
所有评论(0)