将脚本作为.
或./
触发有什么区别?例如:
echo "echo hi" > script.bash
chmod +x script.bash
./script.bash
# outputs hi
. script.bash
# outputs hi
答案 0 :(得分:3)
./
是当前目录的快捷方式,如果您调用./script.bash
,只需调用当前目录中的脚本。
. script.bash
有所不同,此处.
是source a file的快捷方式,长版本为source script.bash
。采购意味着脚本在当前上下文中执行。例如。如果您的脚本更改了目录,那么在脚本运行后您实际上就在该目录中,如果您只是使用./script.bash
执行脚本,则不会出现这种情况,因为脚本具有自己的上下文
答案 1 :(得分:0)
./filename
表示您指的是当前目录中的文件名。
. filename
是一种include语句(包含当前脚本文件中的外部文件,可用于在外部文件中存储函数,然后能够在脚本文件中调用它们)我使用它在我的脚本中用于此目的,非常方便!
编辑: Odi已经解释得更好了;)