Linux中两种脚本执行方式的区别:. xx 和 ./xx

今天继续在看Building Linux Embedded Systems一书,进入第四章,有一些实际的操作,其中在介绍了良好的组织架构(文件夹)后,建议些一个script可以进行不同的开发环境。里面很简单,包括一个export和cd的命令,这个脚本假设为

export PROJECT=/home/aaa/project1

cd $PROJECT

并取名字为 test

我执行$ ./test,发现没有效果,然后在里面增加两个跟踪语句,如下

export PROJECT=/home/aaa/project1

echo $PROJECT

cd $PROJECT

pwd

能够正确执行,并pwd能够指向期待的路径。但是./test脚本执行完之后,设置的环境没有保留,恢复原来的环境,恢复到原来的当前目录,也清空了PROJECT的内容。

所以:如果需要环境一直生效,需要. test。我们根据所需,执行.xx或者./xx,.xx能够保留shell中的执行环境或者结果,而./xx不能

原文地址:https://www.cnblogs.com/wangjz/p/4721893.html