主要答案
是的,为了回答您的问题,可以从命令行使用JavaScript作为“常规”脚本语言,而无需浏览器。由于其他人还没有提到它,我认为它值得一提:
在基于 Debian 的系统(至少包括 Ubuntu、Linux Mint 和 aptosid/sidux)上),除了安装 Rhino 和其他已经提到的选项之外,你还有其他选择:
-
安装libmozjs-78-0
软件包,它将在命令行上为您提供Mozilla的Spidermonkey引擎,作为一个简单的,也可以用作交互式解释器。(名称中的表示它对应于 Firefox 的版本 24)。js24
24
-
安装libv8-dev
软件包,它将为您提供Google的V8引擎。作为其示例之一,它具有可以非常简单地解压缩和编译的文件(例如,)。/usr/share/doc/libv8-dev/examples/shell.cc.gz
g++ -Os shell.cc -o shell -lv8
-
安装软件包nodejs
,它将既可以作为可执行文件使用,也可以作为替代文件(在 Debian 意义上)来提供可执行文件。JIT 编译由 V8 提供。nodejs
js
-
安装 libjavascriptcoregtk-4.0-bin
软件包,并从命令行使用 WebKit 的 JavaScriptCore 解释器 () 作为常规解释器。这是不需要访问Mac的。在许多平台上(例如,x86和x86_64),此解释器将附带一个JIT编译器。jsc
因此,在几乎没有编译的情况下,您将拥有三个重量级的JavaScript引擎供您使用。
补遗
安装完成后,您只需使用shebang行创建文件,事情就会起作用:#!/usr/bin/js
$ 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!
$
旧版本:
libmozjs-24-bin, libmozjs-52, libmozjs-60, libmozjs-91, libjavascriptcoregtk-3.0-bin