Linux
為什麼我只能從父目錄而不是子目錄執行 .sh 文件
我注意到這不起作用:
/tomcatDirectory/bin $ startup.sh //command not found
但這確實有效
/tomcatDirectory $ bin/startup.sh
我習慣了Windows。對我來說,我不能從其工作目錄執行程序,只能從父文件夾執行,這似乎違反直覺。
這裡發生的事情的更大圖景是什麼?
目前目錄(即
.
)不在您的路徑中。嘗試./startup.sh
你可以檢查你的路徑
echo ${PATH}
您可以將目前目錄 (
.
) 添加到您的路徑中,但這被認為是一種風險(尤其.
是在其他目錄之前):當鍵入命令時,shell 將首先嘗試在目前目錄中執行它。這將執行現有的而不是預設的。總結:只需在目前目錄中啟動執行檔
./
即可。
因為“startup.sh”看起來並不像文件路徑,而且您
.
的 PATH 環境變數中沒有。但是您仍然可以將其啟動為./startup.sh