[英]Running node from a bash script
很簡單,我試圖使用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實際上有什么問題嗎,還是節點有特定的方法來執行此操作? 我使用了/ bin / env,這樣無論版本如何,我都可以使用“ node”的適當形式。
看來您正在嘗試從節點內部運行節點。 該錯誤消息來自node,並且看來node正在嘗試運行命令/var/node/assets/js/update.js
。
我將讓shebang行指定bash而不是node。
第一行
#!/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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.