作用域
在bash中,变量都是全局的。也就是说,在脚本中定义的变量,可以在任何地方调用,包括函数。
先定义,后调用。注意先后关系。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [root@vm-101 ~] #!/bin/bash
var1="aaaa"
func1(){ var2="bbbb" echo $var1 return 0 }
echo "1: $var2" func1 echo "2: $var2"
exit 0
[root@vm-101 ~] 1: aaaa 2: bbbb
|
思考:为什么1:后面是空?而2:后面是有值的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| [root@vm-101 ~] #!/bin/bash
var1="aaaa"
func1(){ local var2="bbbb" echo $var1 return 0 }
echo "1: $var2" func1 echo "2: $var2"
exit 0
[root@vm-101 ~] 1: aaaa 2:
|
local的意思是把该变量设置成局部变量。在函数里面定义的,就只能在该函数内部访问和使用。