2011-03-18 62 views
1

我想執行我的JavaScript程序與Rhino shell沒有使第一行#!/ bin/sh。 '#'不是javascript中的註釋字符。我也不希望有一個.js擴展名。如何從Linux shell執行JavaScript程序?

這可能嗎?我記得很久以前閱讀了一些關於如何讓java程序在沒有顯式解釋器的情況下運行的方法。然而,谷歌並未出現。

回答

2

更換你要使用的內核模塊binfmt_misc這一點。我沒有安裝一個JS解釋,但我想魔術會是這樣的犀牛:

# If it's not included in your kernel 
sudo modprobe binfmt_misc 
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc 

# Register the .js extension as being run by Rhino 
echo ':JSScript:E::js::/path/to/rhino:' > /proc/sys/fs/binfmt_misc/register 

這是假定你的腳本很高興能夠像運行:

/path/to/rhino /path/to/your/script 

如果你需要將任何參數傳遞給Rhino,那麼你需要設置一個包裝器。 binfmt_misc的完整文檔是here

+0

並且不要忘記讓腳本可執行。 – 2011-03-18 09:42:37

+0

由於我希望能夠在沒有文件擴展名的情況下命名我的腳本,因此我還添加了:echo':javascript:M :: //!::/usr/bin/js:'>/proc/sys/fs/binfmt_misc /寄存器 – Will 2011-03-22 18:27:16

0

是的,只需撥打rhino /path/to/your/js/file

如果你沒有一個程序rhino在你的路徑,與java org.mozilla.javascript.tools.shell.Main