【问题标题】:Can't execute global Node.js module from Bash shell script (Truffle)?无法从 Bash shell 脚本 (Truffle) 执行全局 Node.js 模块?
【发布时间】:2021-02-09 13:49:12
【问题描述】:

我在我的 Ubuntu 14.04 PC 上安装了以太坊开发工具包 Truffle。只需键入“truffle”,我就可以从终端窗口轻松执行它。但是,当我尝试从 Bash shell 脚本执行 Truffle 时,出现以下错误:

ide-do-truffle.sh: line 3: truffle: command not found

shell 脚本里面的行就是:

truffle compile --network local

如何在 shell 脚本中执行 Truffle?

如果有人还可以解释当您执行全局安装的 Node.JS 包(如 Truffle)时幕后发生的事情,那也会很有帮助。

【问题讨论】:

  • 要么指定 truffle 的路径,要么将 truffle 所在的目录添加到您的 PATH 变量中。
  • 在您的终端窗口中尝试echo $SHELL。您的 shell 可能不是 bash。还要检查您的脚本是否确实使用 bash 运行,而不是使用其他一些 sh-family shell。对于一个 shell,truffle 的路径可能在您的 PATH 中,但对于您的 bash shell 则不存在。此外,如果 bash 脚本以与您不同的用户身份运行,PATH 可能会不同。
  • @ShaneBishop echo $SHELL 的结果是:/bin/bash
  • 在您的终端窗口和脚本中的truffle 行之前尝试echo $PATH,然后比较两者。
  • @ShaneBishop 就是这样。谢谢。出于某种原因,我用来 shell 到 shell 脚本的 IDE 以一种不友好的方式改变了路径。如果您想将您的评论更改为答案,我会投票并接受它。

标签: node.js linux bash npm truffle


【解决方案1】:

您终端窗口中的PATH 可能与您的shell 脚本看到的PATH 不同。

在您的终端窗口和脚本中的truffle 行之前尝试echo "$PATH",然后比较两者。如果存在差异,则问题出在您的 shell 脚本中的 PATH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2020-10-03
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    相关资源
    最近更新 更多