2011-03-18 64 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