【问题标题】:Command Not Found when writing a Node Shell Script编写 Node Shell 脚本时找不到命令
【发布时间】:2012-06-28 02:39:01
【问题描述】:

我正在尝试使用类似于 expressmocha 等软件包的 Node.js 创建 shell 脚本。我的初始测试报告未找到命令,因此我将脚本支持为以下内容:

#!/usr/bin/env node

console.log("printing stuff");

上面运行时应该只输出“打印的东西”;但是,这也行不通。

我正在尝试通过文件目录中的./script 执行脚本,以确保它不是路径问题。尝试在特权状态(即 sudo)下执行会产生相同的结果/错误消息。

知道我需要做什么吗?

【问题讨论】:

  • node -v 在同一个目录会发生什么?
  • 我也可以在目录中npm install mocha 拨打./node_modules/mocha/bin/mocha 没有问题。
  • 奇怪,应该可以。什么操作系统?
  • @RyanOlds Mac OSX 10.7 (Lion)

标签: shell node.js command-line


【解决方案1】:

解决了我的问题。我制作了 shell 脚本,但忘记为文件设置执行权限。执行chmod a+x script 解决了这个问题。

【讨论】:

    【解决方案2】:

    当你 shebang (#!) /usr/bin/env node 时,你是在说“在我的 PATH 上寻找一个名为 node 的程序”。如果像@Ryan 所说的那样做node -v 有效,那么shebang 应该可以正常工作。你有没有可能有一个名为node 的shell 别名或shell 函数?这可能会给您一种错觉,即您的 PATH 是正确的,即使它不是正确的。但本质上,只需确保 node 二进制文件所在的目录(您的节点安装下的 bin 目录)位于您的 PATH 环境变量中,此时一切都应该正常工作。

    export PATH=/usr/local/node/bin:$PATH
    

    【讨论】:

      猜你喜欢
      • 2013-04-26
      • 1970-01-01
      • 2022-08-17
      • 2016-10-07
      • 2017-08-15
      • 2017-01-12
      • 2017-06-02
      • 2021-12-29
      • 2012-08-30
      相关资源
      最近更新 更多