我想執行我的JavaScript程序與Rhino shell沒有使第一行#!/ bin/sh。 '#'不是javascript中的註釋字符。我也不希望有一個.js擴展名。如何從Linux shell執行JavaScript程序?
這可能嗎?我記得很久以前閱讀了一些關於如何讓java程序在沒有顯式解釋器的情況下運行的方法。然而,谷歌並未出現。
我想執行我的JavaScript程序與Rhino shell沒有使第一行#!/ bin/sh。 '#'不是javascript中的註釋字符。我也不希望有一個.js擴展名。如何從Linux shell執行JavaScript程序?
這可能嗎?我記得很久以前閱讀了一些關於如何讓java程序在沒有顯式解釋器的情況下運行的方法。然而,谷歌並未出現。
更換你要使用的內核模塊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。
是的,只需撥打rhino /path/to/your/js/file
如果你沒有一個程序rhino
在你的路徑,與java org.mozilla.javascript.tools.shell.Main
並且不要忘記讓腳本可執行。 – 2011-03-18 09:42:37
由於我希望能夠在沒有文件擴展名的情況下命名我的腳本,因此我還添加了:echo':javascript:M :: //!::/usr/bin/js:'>/proc/sys/fs/binfmt_misc /寄存器 – Will 2011-03-22 18:27:16