主要答案
是的,要回答您的问题,可以从命令行使用 JavaScript 作为“常规”脚本语言,而无需浏览器。由于其他人还没有提到,我看到值得一提的是:
在基于 Debian 的系统上(至少包括 Ubuntu、Linux Mint 和 aptosid/sidux),除了安装 Rhino 和其他已经提到的选项之外,您还有其他选项:
安装libmozjs-24-bin
包,它将在命令行上为您提供 Mozilla 的 Spidermonkey 引擎作为一个简单的js24
,它也可以用作交互式解释器。(24
名称中的 表示它对应于 Firefox 24 版)。
安装该libv8-dev
软件包,它将为您提供 Google 的 V8 引擎。作为它的示例之一,它具有/usr/share/doc/libv8-dev/examples/shell.cc.gz
可以非常简单地解压缩和编译的文件(例如,g++ -Os shell.cc -o shell -lv8
)。
安装该软件包nodejs
,它将作为可执行文件nodejs
和替代(在 Debian 意义上)提供js
可执行文件。JIT 编译是由 V8 提供的。
安装包libjavascriptcoregtk-3.0-bin
并jsc
从命令行使用 WebKit 的 JavaScriptCore 解释器 ( ) 作为常规解释器。这是不需要访问 Mac 的。在许多平台上(例如,x86 和 x86_64),这个解释器会带有一个 JIT 编译器。
因此,几乎不需要编译,您就可以使用三个重量级的 JavaScript 引擎。
附录
一旦你安装了东西,你可以简单地使用#!/usr/bin/js
shebang 行创建文件,事情就会正常工作:
$ cat foo.js
#!/usr/bin/js
console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root 15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root 20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js
$ ./foo.js
Hello, world!
$ js ./foo.js
Hello, world!
$