脚本执行方式的区别

脚本执行方式的区别

我想请教一下以下脚本执行方式之间的区别。

.  script.sh      
../script.sh
. ./script.sh

先感谢您。

答案1

   script.sh
 ./script.sh
../script.sh

以上所有内容都有 shell 要求内核执行给定的文件,该文件不需要是 shell 脚本(无论名称如何)。第一个在 中查找文件PATH,第二个在当前目录 ( .) 中查找文件,第三个在父目录中查找。

.    script.sh
.  ./script.sh
. ../script.sh
source    script.sh
source  ./script.sh
source ../script.sh

两者都.要求sourceshell 本身打开并读取给定的文件作为 shell 命令,在当前外壳,几乎就像里面的命令只是在 shell 命令行上给出的一样。也就是说,例如,在源脚本中进行的所有变量分配随后都在 shell 中可见,而常规执行则不是这种情况。source是 的非标准同义词.。第一个再次在 中查找文件PATH,第二个在当前目录中查找,第三个在父目录中查找。其他三个也同样。

(除了在 Zsh 中,source首先查看当前目录,与 Bash 不同.;在 Bash 中,如果该shopt设置sourcepath被禁用,则两者都不会.source搜索PATH。)

看:

相关内容