【问题标题】:Why command not found in a specific folder? [duplicate]为什么在特定文件夹中找不到命令? [复制]
【发布时间】:2016-06-17 15:09:25
【问题描述】:

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

【问题讨论】:

标签: linux bash shell


【解决方案1】:

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

您需要将完整路径放入您的 $PATH 环境变量中,或者将其符号链接到 $PATH 中的某个位置。

当然,如果你只是想从当前目录运行,最好使用

$ ./stopServer.sh

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

. 本身放入$PATH 被认为是不好的做法。

【讨论】:

  • 将它放在$PATH 前面是额外不好的做法,因为在使用标准搜索路径之前,当前目录中的任何内容都会被提取。跨度>
【解决方案2】:

使用

./stopServer.sh

并确保您拥有执行权。

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 2016-08-02
    • 1970-01-01
    • 2020-07-11
    • 2015-02-26
    • 2021-06-19
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多