node.js - 从 bash 脚本运行 Node

标签 node.js bash shell

很简单,我正在尝试使用 cron 自动运行 nodejs 脚本,但是脚本本身似乎无法运行该文件。我的脚本很简单:

#!/usr/bin/env node
node /var/node/assets/js/update.js

但是,在运行它时,它返回路径的开头不正确:

/home/dev/update.sh:2
node /var/node/assets/js/update.js
      ^^^
SyntaxError: Unexpected token var
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

bash 是否真的有问题,或者 Node 是否有特定的方法来执行此操作?我使用/bin/env 以便无论版本如何,我都可以拥有正确形式的“Node ”。

最佳答案

看起来您正在尝试从 Node 内运行 Node 。错误消息来自 Node ,看起来 Node 正在尝试运行命令 /var/node/assets/js/update.js

我会让 shebang 行指定 bash 而不是 node。

顶行

#!/usr/bin/env node

表示后面应该是 JavaScript 代码,而不是 bash。

关于node.js - 从 bash 脚本运行 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509848/

相关文章:

linux - Bash `wait` 命令,等待超过 1 个 PID 完成执行

linux - sudo : unable to excute ./blah.sh: 没有那个文件或目录

javascript - 在 Node.js 中编写非阻塞函数的正确方法

node.js - Express/Mongoose 使用对象函数作为回调不起作用

bash - 生成文件 : foreach error

python - 从 bash : Command not found error 运行 Python 脚本

bash - 运行时错误 (func=(main), adr=5) : Divide by zero - How to fix?

node.js - 无法全局安装 express

javascript - 在创建之前不适用于我的 Sequelize 模型

bash - 使用 AWS CLI 选择实例内的 Autoscaling 组标签