source shell脚本和bash执行shell脚本的区别
shell脚本的执行方式
- source xx.sh
- bash xx.sh
其他执行方式在此不展开讨论,仅对这两种执行方式做比较
区别
- 在用bash调用脚本的时候,父进程接收到命令,发现不是内建命令,于是会创建一个和自己一模一样的shell进程来执行这个外部命令。这个子进程中设置了自己的运行的变量。而在此时,父进程的变量并没有改变。子进程执行完毕,消亡。这是一直等待的父进程来继续接收命令。
- 而在用source来执行脚本的时候,不会创建子进程,而是在父进程中直接执行。所以当需要程序修改当前shell本身的变量的时候,使用source命令。
实例
现有如下xx.sh文件

以bash方式执行的结果:

以source方式执行的结果:


浙公网安备 33010602011771号