2011-01-25 83 views
28

我喜歡javascript,所以當聽說Node.js是一個基於V8的Javascript運行時時,我很興奮。我寧願在Javascript中執行我的shell腳本。我的問題是這樣的:我怎樣才能運行我的腳本,而不致電node ~/Scripts/myscript.js?在我的腳本chmod +x之後,它嘗試以bash腳本而非Node.js javascript的形式運行。是否可以在不調用`node`的情況下運行Node.js腳本?

+0

imho這屬於stackoverflow.com – akira 2011-01-25 07:21:44

+1

@akira我在這裏發佈它,因爲它關注工具使用,而不是編程主題。我的問題是關於操作系統如何處理腳本文件,而不是如何編寫所述腳本。 – 2011-01-25 17:38:14

回答

34

什麼讓你當前的shell啓動bash是你的當前shell(bash?)不知道如何處理file.js.這就是爲什麼UNIX的神發明了shebang爲:

包括文字數字符號和感嘆號(!#)的字符序列,當它發生在一個文本文件的第一行的前兩個字符。在這種情況下,類Unix操作系統中的程序加載器會將第一行的其餘部分解析爲解釋器指令,並使用任何指定爲參數的命令行選項調用在字符序列之後指定的程序。

所以,你的情況我會盡量把

#!/usr/bin/env node 

在腳本的頂部。你可以看到,beeing應用在'inode'(interactive node.js)shell中,這可能是另一種選擇來激活你的腳本。

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

0

你總是可以簡單地創建爲你運行節點的shell腳本。

或者,如果您要創建可在未安裝node.js的環境中運行的腳本,則可以使用installer-maker

相關問題