Beer<-...->Belly

I like black beer.

导航

【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)    收藏  举报