bash 变量作用域
来源:互联网 发布:我知你好未再 妈妈网 编辑:程序博客网 时间:2024/06/05 18:54
bash 里面有两种作用域一种是全局作用域,即默认所声明的变量;另外一种则是局部作用域,用local关键字声明的变量。
1)全局变量声明有如下几种情形:
#!/bin/bashmm=12 #visible globallyfunc() { mn=34 #visible globally echo "mc=${mc}" #is visible}mc=35 #visible globally# echo "mn={$mn}" #is not visiblefuncecho "mm=${mm};mn=${mn};mc=${mc}"
但是在函数里面声明的全局变量mn,在主函数没有被调用前,是不可见。
2) 局部作用域,声明变量时,在前面添加local关键字, 并且只能应用在函数里面,其作用域
只是在当前函数块,及其子函数内可见。
#!/bin/bashfunc1() { local loc1=11 echo "func1 loc1=${loc1}" #is visible}func2() { echo "func2 loc1=${loc1}" #is visible}func1echo "local loc1:${loc1}" #not visible
有一种特殊的情形是: 当局部变量的声明和设置在一个单一命令行时,显示操作的顺序是,先设置变量,
然后再限制变量的作用范围,这一结果体现在返回值上。
如下:
#!/bin/basht=$(exit 1)echo $? # return 1echo "t=${t}"func() { t1=$(exit 1) echo $? # return 1 echo "t1=${t1}" local t2=$(exit 1) echo $? # return 0 echo "t2=${t2}" local t3 t3=$(exit 1) echo $? # return 1 echo "t3=${t3}"}func()
- bash 变量作用域
- bash遇到的一个变量作用域问题,记录下
- Linux Shell Bash 变量赋值中"$()"的作用
- bash变量
- bash变量
- Bash变量
- bash 变量
- bash变量
- BASH变量
- static变量作用域
- 变量作用域2
- 变量作用域3
- 变量作用域1
- 变量作用域
- 变量作用域
- C++变量作用域
- 变量作用域
- JavaScript 变量作用域
- 再来屏幕适配知识
- 设计模式之几个基本设计原则
- Android游戏开发----LibGdx游戏引擎制作微信火焰效果(附源码)
- 使用dump_stack()打印出内核调用堆栈
- 树莓派+python opencv实现远程监控
- bash 变量作用域
- Android平台下OpenGL初步
- 从零开始学C++之构造函数与析构函数(一):构造函数、析构函数、赋值与初始化、explicit关键字
- 让面试官被你吸引的五个绝招
- 在线编程:最长有效括号的长度
- 【Servlet3.0新特性】第02节_Servlet的动态注册以及使用注解编写监听器和过滤器
- Linux信号
- HDOJ 2089 不要62
- 高效使用top