我是 shell 新手,所以我一直被这种问题困扰。区分这些命令的最简单方法是什么?
答案1
因为
t.sh
shell 将按PATH
顺序搜索名为的文件t.sh
,如果找到则执行该文件因为
. t.sh
shell 会PATH
按顺序搜索名为t.sh
but 的文件来源如果找到的话。对于 bash shell 来说,对源命令的搜索行为还有其他考虑,如下所述
man bash
:
When bash is not in posix mode, the current directory is searched if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off, the PATH is not searched.
因为shell 将在文件系统根目录中
/t.sh
查找文件并尝试执行它t.sh
/
因为shell 会在当前工作目录中
./t.sh
查找文件并尝试执行它t.sh
.
也可以看看