读书人

shell编程中export中的运用

发布时间: 2013-01-05 15:20:40 作者: rapoo

shell编程中export中的使用
自己写了两个小的shell脚本。
a.sh 文件如下:


#!/bin/bash
v=2
echo v=$v
./b.sh
echo v=$v

b.sh 文件如下:

#!/bin/bash
v=3
export v
v=4


为什么输出结果为:
v=2
v=2

[解决办法]
脚本内的export作用于当前脚本,不会影响外部shell的。可以采用source的方式来运行
[解决办法]
./b.sh是运行一个子进程
子进程的export不会影响父进程,但父进程的export会影响子进程
[解决办法]
将 ./b.sh 改成 source ./b.sh 就会有你期望的结果。source 不会开启子进程,对当前进程生效。

读书人网 >UNIXLINUX

热点推荐