【Bash脚本便利贴】【二】【在Bash脚本中使用export】
###############################
#Linux环境:Red Hat Enterprise Linux 5.4
#Bash环境:GUN bash 3.2.25
#操作用户:root
###############################
如题,这篇文章是关于在Bash脚本中使用指令export的一些内容。
先来看一下export的作用,简单的讲export作用于变量,使得Shell父进程中定义的变量能被其子进程获得。在Bash脚本中使用export可以使定义的变量达到全局变量的效果。下面看一个例子,新建两个脚本test1.sh和test2.sh。
test1.sh
1 #!/bin/sh 2 3 export A="Hello A!"
test2.sh
1 #!/bin/sh 2 3 echo $A
然后使用指令bash的方式的运行两个脚本,得到如下的效果。
[root@amt01 article002]# bash test1.sh [root@amt01 article002]# bash test2.sh [root@amt01 article002]#
test1.sh中的变量A并没有显示出来。
换种方式运行,使用source指令的方式。
[root@amt01 article002]# source test1.sh [root@amt01 article002]# source test2.sh Hello A! [root@amt01 article002]#
test1.sh中的变量A并显示出来了。
其实直接运行脚本的方式产生的效果同使用bash指令的一样,关于这三种脚本的运行方式可以阅读Bash脚本的运行方式。
从上面的例子中不难发现,使用source的方式会发现,export后的变量变成了当前Shell的环境变量,可以在当前Shell环境下打印一下变量A。
[root@amt01 article002]# echo $A Hello A! [root@amt01 article002]#
打开一个新的Shell环境,新建一个脚本test3.sh。
1 #!/bin/sh 2 3 export A="Hello A!" 4 5 ./test2.sh
运行结果。
[root@amt01 article002]# bash test3.sh Hello A! [root@amt01 article002]# echo $A [root@amt01 article002]#
根据这个例子,可以发现变量A并没有写入父进程中。
##################################
#[文章履历]
#[2012/10/08 20:42:30]---[新建完成]
##################################
<-...->
posted on 2012-10-08 20:45 Beer Belly 阅读(557) 评论(0) 收藏 举报
浙公网安备 33010602011771号