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 不会开启子进程,对当前进程生效。