总结来说,主要区别在于使用`bash`命令运行脚本是在一个新的shell实例中执行,而`source`则是在当前shell环境中执行脚本。因此,如果你希望改变当前shell会话的环境变量或函数定义,你应该使用`source`;如果你只是想执行一系列命令而不影响当前环境,那么应该使用`bash`。
在bash下输入man source,找到source命令解释处,可以看到解释"Read and execute commands from filename in the current shell environment and ..."。从中可以知道,source命令是在当前进程中执行参数文件中的各个命令,而不是另起子进程(或sub-shell)。 exec: 在bash下输入man exec,找到exec命令解释处,可以看到有"...
而在用source来执行脚本的时候,不会创建子进程,而是在父进程中直接执行。所以当需要程序修改当前shell本身的环境变量的时候,使用source命令。 附测试脚本 分别使用bash和source执行以下脚本,执行完毕后重新运行pwd命令,会发现使用bash命令脚本执行前后路径并没有发生变化,而使用source执行脚本后路径发生了变化 #!/bin/bash...
source执行与sh执行区别: source在当前shell中运行,而sh/bash 在子shell中运行 SouthEast.png ./ ./build/envsetup.sh 打开一个子shell去读取、执行envsetup.sh,但envsetup.sh需要有"执行权限
2 执行环境与变量传递的差异 在 Linux 中使用source和sh、bash等命令执行脚本时,执行环境的不同导致了...
bash和sh的区别主要体现在执行shell脚本的时候 我们先写一个shell脚本test.sh 内容如下 [root@centos76 data]# vim test.sh [root@centos76 data]# [root@centos76 data]# cat test.sh source err echo hello 这个脚本中有两个命令 其中第一个命令会因为err找不到而报错 ...
bashxxx.sh:新建一个 bash 终端,并执行 xxx.sh。 sh xxx.sh:新建一个 sh 终端,并执行 xxx.sh。 source xxx.sh:在当前终端执行 xxx.sh,也可以写成. xxx.sh。 ./xxx.sh:打开一个新的终端,并执行 xxx.sh。(注意:此方法需要先给代码添加执行权限,可以输入chmod +x xxx.sh) ...
source是在本shell中执行,不创建子进程 sh是标准shell,以标准shell调用后面跟的文件,起一个当前shell的子进程 bash相对于shell是做了增强,其它和sh一样,注意在linux上bash和sh是软链接关系 /是根路径,后面跟文件时显示绝对路径,当文件有可执行权限时,则可以通过绝对路径来执行,使用的是文件开头...