source shell脚本和bash执行shell脚本的区别

shell脚本的执行方式

  • source xx.sh
  • bash xx.sh

其他执行方式在此不展开讨论,仅对这两种执行方式做比较

区别

  • 在用bash调用脚本的时候,父进程接收到命令,发现不是内建命令,于是会创建一个和自己一模一样的shell进程来执行这个外部命令。这个子进程中设置了自己的运行的变量。而在此时,父进程的变量并没有改变。子进程执行完毕,消亡。这是一直等待的父进程来继续接收命令。
  • 而在用source来执行脚本的时候,不会创建子进程,而是在父进程中直接执行。所以当需要程序修改当前shell本身的变量的时候,使用source命令。

实例

现有如下xx.sh文件

以bash方式执行的结果:

以source方式执行的结果:

posted @ 2025-02-02 22:10  MKYC  阅读(22)  评论(0)    收藏  举报