27

簡単に言えば、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 を使用して、バージョンに関係なく適切な形式の「ノード」を使用できるようにしました。

4

3 に答える 3

56

ノード内からノードを実行しようとしているようです。エラー メッセージはノードから送信され、ノードがコマンドを実行しようとしていたよう/var/node/assets/js/update.jsです。

シバン行にノードではなくbashを指定させます。

トップライン

#!/usr/bin/env node

以下は、bash ではなく JavaScript コードでなければならないことを意味します。

于 2013-05-12T16:59:06.210 に答える
-5

これはどう?

#!/bin/bash

node /var/node/assets/js/update.js
于 2014-01-31T22:00:02.323 に答える