【问题标题】:setup/index.sh mongo:not foundsetup/index.sh mongo:未找到
【发布时间】:2018-08-30 15:52:23
【问题描述】:

您好,我有一个 nodejs 应用程序。为了设置该应用程序,我有一个名为“setup”的文件夹,其中包含以下文件:

  1. commands.js
  2. index.sh
  3. index.js

我还有以下 npm 脚本: setup:sh ./setup/index.sh

这里是index.sh的内容

#!/bin/sh
echo "Optikos app database setup on progress";
node "$PWD/setup/index.js";
mongo --p 27019 "$PWD/setup/commands.js";

但是,当我运行脚本时,出现以下错误:

./setup/index.sh: 4: ./setup/index.sh: mongo: not found

然而 mongo 已经安装并且在我的$PATH

任何想法为什么会发生这种情况?

这是我的$PATH

/home/mkcodergr/.npm-global/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/mkcodergr/Documents/GitHub/optikos-app/node_modules/.bin:~/mongo/bin:~/Downloads/ngrok:~/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

【问题讨论】:

  • 是否安装了mongo?它在你的 $PATH 上吗?
  • 是的,它在我的 $PATH 中
  • 可能不在您的脚本中。尝试在脚本中添加这一行 echo $PATH 并再次运行,看看打印的 PATH 是否包含 mongo
  • 它打印我的整个 PATH,因为它包括 mongo 路径

标签: node.js mongodb bash npm-scripts


【解决方案1】:

问题出在我的~/.profile 文件中。 我在文件末尾更改了以下几行:

PATH="~/.npm-global/bin:$PATH"
PATH="~/Downloads/ngrok:$PATH"
PATH="~/mongo/bin:$PATH"

到:

PATH="$HOME/.npm-global/bin:$PATH"
PATH="$HOME/Downloads/ngrok:$PATH"
PATH="$HOME/mongo/bin:$PATH"

然后重新加载了我的个人资料,它成功了

【讨论】:

  • 至于为什么here'sShellCheck关于这个问题的信息
猜你喜欢
  • 2012-06-08
  • 1970-01-01
  • 2014-08-11
  • 2016-07-09
  • 2017-07-27
  • 2020-12-21
  • 2014-03-14
  • 2015-04-15
相关资源
最近更新 更多