到目前为止,在写shell脚本的时候,经常被shell的函数中的变量作用域搞得糊涂,于是今天特意查了点资料,看到底怎么回事。
/********************************************************************
* shell 全局和局部变量
* 声明:
* 到目前为止,在写shell脚本的时候,经常被shell的函数中的变量
* 作用域搞得糊涂,于是今天特意查了点资料,看到底怎么回事。
*
* 2016-2-24 深圳 南山平山村 曾剑锋
*******************************************************************/
一、参考文章:
shell 函数变量调用( 全局和局部 )混淆!!!
http://bbs.chinaunix.net/thread-3607361-1-1.html
二、结论:
shell变量都是全局的,除非在函数中用local限定(如果你的shell支持的话)
三、测试代码:
#!/bin/bash
data=10
modify_data() {
echo "2. $data"
data=50
echo "3. $data"
}
echo "1. $data"
modify_data
echo "4. $data"
四、测试结果:
1. 10
2. 10
3. 50
4. 50