导出不适用于后台进程

时间:2012-09-07 19:10:06

标签: bash shell

pipe.sh

 export START=100
 . ./other.sh &
 wait

other.sh

sleep 5
export END=200

但是我没有在“export -p”中看到变量END。但是如果将pipe.sh改为

,我确实看到了
 export START=100
 . ./other.sh 

如何从后台进程导出变量?有什么工作吗?

1 个答案:

答案 0 :(得分:2)

子进程无法更改父进程环境,需要以某种方式从父进程声明变量。例如,使用文件:

pipe.sh:

export START=100
. ./other.sh > tmp &
wait
source tmp
rm tmp 
echo $END

other.sh:

sleep 5
echo "export END=200"

Also see this answer