从bash脚本运行节点

很简单,我试图使用cron自动运行nodejs脚本,但脚本本身似乎不能运行该文件。 我的脚本很简单:

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

但是,在运行这个时,返回path的开始是不正确的:

 /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,这样我就可以拥有适当的“节点”forms,而不pipe版本。

看起来你正在尝试从节点内运行节点。 错误消息来自节点,它看起来像节点试图运行命令/var/node/assets/js/update.js

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

顶线

 #!/usr/bin/env node 

意味着接下来应该是JavaScript代码而不是bash。

您已经在未修改的环境中的第一行上运行节点。

那么在第二行中,将命令node /var/node/assets/js/update.js给该节点进程。

这个怎么样:

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

这个怎么样?

 #!/bin/bash node /var/node/assets/js/update.js