2016-06-17 68 views
1

我在bin文件夾中有一個.sh文件,但是當我嘗試使用它時,服務器在文件夾中找不到它。爲什麼在特定文件夾中找不到命令?

/home/monju/full/app/bin $ls 
checkServer.sh etf_disagg_config_loader.sh getLogName.sh mapr 
common.sh  findLog.sh     jgrouplog.sh phase2b 
commonStart.sh findServer.sh    jmx   postInstallSetup.sh 
errorLog.ksh followLog.sh     jrebel.sh  probe.sh 
etf    genTestFile.ksh    killServer.sh RMSDisable.sh 
/home/monju/full/app/bin $stopServer.sh 
bash: stopServer.sh: command not found 

而當我使用/home/monju/full/app/bin/stopServer.sh時,可以使用它。

回答

8

僅僅因爲它在名爲bin的目錄中並不意味着shell可以神奇地找到它。

您需要將完整路徑放在您的$PATH環境變量中,或者將它的符號鏈接到已經在$PATH中的某處。

當然,如果你希望從當前目錄運行它,最好使用

$ ./stopServer.sh 

這是一樣的,你給了,只使用相對路徑語法,其中長的絕對路徑.表示當前目錄。

.本身放在$PATH被認爲是不好的做法,我認爲。

+1

你覺得沒錯。 :) – Barmar

+0

由於在使用標準搜索路徑之前,當前目錄中的任何內容都將被拾取,所以將它放在'$ PATH'的前面是*額外的*壞習慣。 – Kusalananda

3

使用

./stopServer.sh 

,並確保您擁有執行權。

相關問題