2011-01-25 5 views
28

私はjavascriptが好きなので、V8ベースのJavascriptランタイムであるNode.jsについて聞いたときには興奮しました。私は、Javascriptで今後のシェルスクリプトを行う方が好きです。私の問題はこれです:node ~/Scripts/myscript.jsを呼び出さずにスクリプトを実行するにはどうすればいいですか?私のスクリプトchmod +xの後、Node.jsのjavascriptの代わりにbashスクリプトとして実行しようとします。`node`を呼び出さずにNode.jsスクリプトを実行することは可能ですか?

+0

imhoこれは、トピックをプログラミングするのではなく、ツールの使用に関係するため、ここに投稿しました。 – akira

+1

@akira私の質問は、オペレーティングシステムがスクリプトファイルをどのように扱うかではなく、スクリプトをどのようにプログラムするかについてです。 –

+0

実際にGeanyでこれを行うのはかなり簡単です:http://stackoverflow.com/questions/12464679/run-a-node-js-server-from-geany/12465826#12465826 –

答えて

34

あなたの現在のシェルを作ることは、あなたの現在のシェル(bash?)がfile.jsで何をするのかについての手がかりがないことです。それは、テキストファイルの最初の行の最初の2つの文字として発生したときに、

文字の番号記号と感嘆符(#!)からなる文字列:UNIXの神々がため shebangを発明した理由厥。この場合、Unixライクなオペレーティングシステムのプログラムローダーは、最初の行の残りの部分をインタプリタディレクティブとして解析し、コマンドラインオプションをパラメータとして指定した文字シーケンスの後に指定されたプログラムを呼び出します。

だから、あなたのケースで私は、スクリプトの先頭に

#!/usr/bin/env node 

を置くことをしようとするだろう。例えば、inode(対話式node.js)シェルに適用されているbeeingを見ることができます。これは、スクリプトを起動する別のオプションかもしれません。

https://github.com/bancek/node-interactive-shell/blob/master/inode.js

+24

実際に彼は '#!/ usr/bin/env node'を実行します。 PS:ノードをrootとしてインストールするのは悪い考えで、常に '〜/ .local'にインストールしてください。そこにnpmもインストールする必要があります。それ以外の場合は、インストールするためにnpmをsudoする必要があります。ノードパッケージにはインストール後スクリプトがあります; –

+0

@Ivo Wetzel Node.jsを〜/ .localに移動するには?私はちょうどアンインストールし、再インストールする必要がありますか?私はソースから 'make'を使ってビルドします –

+0

現在のものをアンインストールしてから、このgistを参照してください:https://gist.github.com/579814#file_xgd_freedesktop.org_style.sh –

0

あなたはいつも、単にあなたのためのノードを実行するシェルスクリプトを作成することができます。

また、node.jsがインストールされていない環境で実行できるスクリプトを作成する場合は、installer-makerを使用できます。

関連する問題