为什么我只能运行父目录中的 .sh 文件,而不能运行子目录中的 .sh 文件

为什么我只能运行父目录中的 .sh 文件,而不能运行子目录中的 .sh 文件

我注意到这不起作用:

/tomcatDirectory/bin $ startup.sh //command not found

但这确实有效

/tomcatDirectory $ bin/startup.sh

我习惯了Windows。对我来说,我无法从其工作目录运行程序,而只能从父文件夹运行程序,这似乎违反直觉。

这里发生的事情的大局是什么?

答案1

当前目录(即.)不在您的路径中。尝试用

./startup.sh

您可以使用以下命令检查您的路径

echo ${PATH}

可以将当前目录 ( .) 添加到您的路径中,但这被认为是一种风险(特别是.在其他目录之前):当键入命令时,shell 将首先尝试在当前目录中执行它。这将执行现有的内容而不是默认一。

总结:只需在当前目录中启动可执行文件即可./

答案2

.因为“startup.sh”看起来并不像文件路径,并且您的 PATH 环境变量中也没有该路径。但你仍然可以开始它./startup.sh

相关内容