2016年7月28日星期四

Linux_115:精通 shell 编程之五:局部变量、环境变量、shell 变量

环境:RHEL 7.1 或 MAC 10.11.6

局部变量只能在创建它们的 shell 中使用。
环境变量可以在创建它们的 shell 及其派生出来的任意子进程中使用。
shell 变量是在 shell 初始化的时候被系统设定的变量,比如前文提到的《shell 变量》。

那么,区别到底在哪里呢?通过一个简单的测试说明一下。
实验前,先介绍一下 set、env、export 命令。
(1)set:显示或设置局部变量。
(2)env:显示或设置当前用户的环境变量。
(3)export:显示或设置导出成当前用户的环境变量的局部变量。

开始实验:
(1)设置一个局部变量:$ aaa=bbb
(2)使用 echo 查看刚刚设置的局部变量:$ echo $aaa,输出 bbb,说明局部变量中有 aaa。
(3)使用 env 查看当前用户的环境变量:$ env | grep aaa,没有任何输出,说明当前环境变量中没有 aaa。
(4)使用 set 查看刚刚设置的局部变量:$ set | grep aaa,输出 aaa=bbb,说明局部变量中有 aaa。
(5)使用 export 查看当前用户的环境变量:$ export | grep aaa,没有任何输出,说明当前环境变量中没有 aaa。
(6)使用 export 导出局部变量:$ export aaa
(7)使用 env 再次查看当前用户的环境变量:$ env | grep aaa,输出 aaa=bbb,说明当前环境变量中有 aaa。
(8)使用 export 查看当前用户的环境变量:$ export | grep aaa,输出 aaa=bbb,说明当前环境变量中有 aaa。

小结:

特征
局部变量
环境变量
shell 变量
受子进程影响

被用户设定

shell 设定


可被用户更改

shell 限制



参考文献:
1. 《精通 shell 编程(第二版)》

没有评论: