Dan*_*iel 125 javascript unix scripting command-line v8
我正在研究没有浏览器的Javascript编程.我想从Linux或Mac OS X命令行运行脚本,就像我们运行任何其他脚本语言(ruby,php,perl,python ......)
$ javascript my_javascript_code.js
Run Code Online (Sandbox Code Playgroud)
我看了蜘蛛猴(Mozilla)和v8(谷歌),但这两个似乎都是嵌入式的.
是否有人使用Javascript作为脚本语言从命令行执行?
如果有人好奇,为什么我期待到这一点,我一直在关注着Node.js的.node.js的性能让我想知道javascript是否可以成为处理大数据的可行脚本语言.
rbr*_*ito 56
是的,要回答您的问题,可以在命令行中使用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并使用WebKit的JavaScriptCore解释器(jsc)作为命令行的常规解释器.这不需要访问Mac.在许多平台上(例如,x86和x86_64),此解释器将带有JIT编译器.
因此,几乎没有编译,您将拥有三个重量级的JavaScript引擎.
一旦你安装了东西,你可以简单地用#!/usr/bin/jsshebang线创建文件,事情就会起作用:
$ 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!
$
Run Code Online (Sandbox Code Playgroud)
jas*_*p85 44
我在这个主题上找到了这个相关的问题,但是如果你想要直接链接,这里它们是:
我很惊讶node.js没有shell,但我想它更像是一个基于epoll/selector的回调/面向事件的web服务器,所以也许它不需要完整的JS功能集,但是我对它的内部运作不太熟悉.
由于您似乎对node.js感兴趣并且因为它基于V8,所以最好按照这些说明来设置V8环境,这样您就可以为JavaScript编程提供一致的基础(我希望JSC和V8主要是同样的,但我不确定).
nop*_*ole 23
我在iMac上安装了Node.js.
node somefile.js
Run Code Online (Sandbox Code Playgroud)
在bash中会有效.
Che*_*eso 10
我知道你问过Linux和Mac; 我将为Windows提供答案,以防其他对Windows感兴趣的人找到您的问题.
Windows包含可以从命令行使用的Javascript引擎.
从Windows 98开始,所有版本的Windows都包含了一个名为" Windows脚本宿主 "的东西.它是支持脚本"引擎"的Windows标准方式.自第一个版本发布以来,WSH支持JScript,微软的Javascript版本.除此之外,这意味着,从Windows命令行,您只需调用任何*.js文件的名称,它将在JScript引擎中运行.(通过wscript.exe或cscript.exe)
你可以看到这个问题: 什么是IE9的Javascript引擎(代号为"Chakra")的ProgId或CLSID,以学习如何从cscript.exe调用更高性能的IE9 Javascript引擎.
由于没有人提及它:自Java 1.6以来Java JDK还捆绑了JavaScript命令行和REPL.
它基于Rhino:https://developer.mozilla.org/en/docs/Rhino
在Java 1.6和1.7中,命令被调用jrunscript(jrunscript.exe在Windows上),可以在JDK的bin文件夹中找到.
从Java 1.8开始,捆绑了一个新的JavaScript实现(Nashorn:https://blogs.oracle.com/nashorn/ )
所以在Java 1.8中调用该命令jjs(jjs.exe在Windows上)
小智 6
FWIW,node.js附带一个shell,尝试输入:
node-repl
Run Code Online (Sandbox Code Playgroud)
一旦你安装了node.js就可以看到它的运行情况.安装rlwrap以使其正常工作是非常标准的.
| 归档时间: |
|
| 查看次数: |
112843 次 |
| 最近记录: |