簡體   English   中英

從bash腳本運行節點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM