现在我们看一下Shell中局部变量的使用
以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容:
# cd /opt/scripts
# vim script03.sh
开始编写script03.sh的脚本,脚本内容为:
1 #! /bin/sh 2 num=123 3 func1() 4 { 5 num=321 6 echo $num 7 } 8 func2() 9 { 10 local num=456 11 echo $num 12 } 13 echo $num 14 func1 15 echo $num 16 func2 17 echo $num
# chmod +x script03.sh
# ./script03.sh
123
321
321
456
321
下面我解释一下上面的代码:
第3到第12行代码是声明了两个函数体,分别是func1和func2,func1中的num因为在第1行代码已经声明过了,这里等于是覆盖了全局变量num的值
func2中的num前面使用了local,那么这里的num就是一个局部变量,只在函数体里有效,跟全局变量num是没有关系的
能理解上面说的内容,就不难理解输出的结果了。