为什么在特定文件夹中找不到命令?

时间:2016-06-17 15:09:25

标签: linux bash shell

我在bin文件夹中有一个.sh文件,但是当我尝试使用它时,服务器无法在文件夹中找到它。

using System.Linq;
using Composite.Data;
using Composite.Data.Types;

当我使用/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 时,可以使用它。

2 个答案:

答案 0 :(得分:7)

仅仅因为它位于名为bin的目录中并不意味着shell可以神奇地找到它。

您需要在$PATH环境变量中添加完整路径,或将其符号链接到$PATH已经存在的位置。

当然,如果想要从当前目录运行它,那么最好使用

$ ./stopServer.sh

与您给出的长绝对路径相同,只使用相对路径语法,其中.表示当前目录。

我认为将.置于$PATH本身被认为是不好的做法。

答案 1 :(得分:2)

使用

./stopServer.sh

并确保您拥有执行权。