今天在做第一个linux scripts的实验时,产生了一个疑惑,为什么在scripts里面export出了修改后的PATH变量,在scripts执行之后却发现此时的PATH值并没有发生改变,
源代码如下:
PATH=$PATH:/home/aaa/scripts
export scripts
echo -e "hello word"
exit 0
在该程序执行之后,执行echo $PATH 发现PATH的值并没有发生改变,心想可能是scripts中修改的环境变量只在scripts执行时有效,在网上查找一番资料后,发现有人说是
父进程修改的环境变量子进程可以用,子进程设置的环境变量父进程不可以用,于是做了如下的实验
PATH=$PATH:/home/aaa/scripts
export PATH
echo $PATH
echo -e "hello world"
bash
echo -e "hello word"
echo $PATH
结果发现命令执行到bash后就没有执行了(echo $?=0),看来父进程和子进程的说法在scripts里面似乎解释不通,于是心想着有没有专注讲scripts实现原理的一些书籍,
希望大家可以推荐。