10.2.3
、程序相关性示意图
如上所示,我们在原本的
bash
底下执行另一个
bash
,½果操作的环境½口会跑到第二个
bash
(
就是子程序
)
那原本的
bash
就会在暂停的情况
(
睡着了,就是
sleep)
。整个指令运作的环境是实
线的部分!若要回到原本的
bash
去,
就只有½第二个
bash
½束掉
(
下达
exit
logout)
才行。
更多的程序概念我们会在第四篇谈及,这里只要有这个概念即可。
这个程序概念与变量有啥关系啊?关系可大了!因为
子程序½会继承父程序的环境变量,
子程序不
会继承父程序的自定义变量
啦!所以你在原本
bash
的自定义变量在½入了子程序后就会消失不见,
一直到你离开子程序并回到原本的父程序后,这个变量才会又出现!
换个½度来想,也就是说,如果我能½自定义变量变成环境变量的话,那不就可以让该变量值继续存
在于子程序了?
呵呵!没错!此时,那个
export
指令就很有用啦!如你想要让该变量内容继续的在
子程序中使用,那么就请执行:
[dmtsai@study ~]$
export
量名
这东西用在『
分享自己的变量设定给后来呼½的文件或其他程序
』啦!
像鸟哥常常在自己的主控文
件后面呼½其他附属文件
(
类似函式的功能
)
,但是主控文件与附属文件内都有相同的变量名称,
一再重复设定时,要修改也很麻烦,此时只要在原本的第一个文件内设定好『
export
变量
』,
面所呼½的文件就能够使用这个变量设定了!而不需要重复设定,这非常实用于
shell script
当中喔!
如果½下达
export
而没有½变量时,那么此时½会把所有的『环境变量』秀出来喔!例如:
[dmtsai@study ~]$
export
declare
-
x HISTSIZE="1000"
declare
-
x HOME="/home/dmtsai"
declare
-
x HOSTNAME="study.centos.vbird"
declare
-
x LANG="zh_TW.UTF
-
8"
declare
-
x LC_ALL="en_US.utf8"
#
后面的
哥就都直½省略了!不然
....
版面~
^_^
那如何½环境变量转成自定义变量呢?可以使用本章后续½绍的
declare
呢!