2016-06-17 47 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 

,并确保您拥有执行权。

相关问题