有什么区别。和./?

时间:2013-12-04 12:20:37

标签: bash

将脚本作为../触发有什么区别?例如:

echo "echo hi" > script.bash
chmod +x script.bash
./script.bash 
# outputs hi
. script.bash 
# outputs hi 

2 个答案:

答案 0 :(得分:3)

./是当前目录的快捷方式,如果您调用./script.bash,只需调用当前目录中的脚本。

. script.bash有所不同,此处.source a file的快捷方式,长版本为source script.bash。采购意味着脚本在当前上下文中执行。例如。如果您的脚本更改了目录,那么在脚本运行后您实际上就在该目录中,如果您只是使用./script.bash执行脚本,则不会出现这种情况,因为脚本具有自己的上下文

答案 1 :(得分:0)

./filename表示您指的是当前目录中的文件名。

. filename是一种include语句(包含当前脚本文件中的外部文件,可用于在外部文件中存储函数,然后能够在脚本文件中调用它们)我使用它在我的脚本中用于此目的,非常方便!

编辑: Odi已经解释得更好了;)