命令“t.sh” “.t.sh” “/t.sh” “./t.sh”之间有什么区别?

命令“t.sh” “.t.sh” “/t.sh” “./t.sh”之间有什么区别?

我是 shell 新手,所以我一直被这种问题困扰。区分这些命令的最简单方法是什么?

答案1

  • 因为t.shshell 将按PATH顺序搜索名为的文件t.sh,如果找到则执行该文件

  • 因为. t.shshell 会PATH按顺序搜索名为t.shbut 的文件来源如果找到的话。

    对于 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.

也可以看看

相关内容