/******************************************************************** * 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