Linux下的JavaScript解释器

18

是否有一种方法可以从使用独立解释器的JavaScript(类似于SpiderMonkey,JavaScript Shell)运行Linux命令?


为什么不用bash写呢? - oneat
是的,那是第一個選項,但有人建議我使用JavaScript,所以我想知道是否可能。 :) - Madalina
4个回答

11

你可以使用NodeJS。它有一个child_process模块,可以运行任意命令。例如:child_process.spawn()

当你的脚本完成后,你可以这样运行它:

node myscript.js

8

jslibs是一个独立的JavaScript解释器,可在Linux32/64和Windows上运行。
通过jslibs提供的库,您可以轻松地运行Linux命令。


2

是的,我需要运行类似于system('rpm -i myapp.rpm')这样的东西,但直接从Javascript中运行,因为我不能依赖其他语言,比如C++或Java。 - Madalina

0

Rhino提供了一个用Java编写的JavaScript解释器,可以从命令行调用。如果您需要浏览器仿真器,请尝试Envjs

Rhino无法执行命令,但是您可以使用org.mozilla.javascript.ScriptableObject.defineFunctionProperties()来定义一个新函数,该函数调用一些Java代码,在其中您可以使用ProcessBuilder创建一个新进程。

[编辑]由于JavaScript是一种解释性语言,因此您需要一个解释器。为了使解释器运行,您需要其他语言。Linux没有内置的(像shell脚本或类似的那样)。

如果您需要脚本,请使用Bash或(对于更复杂的脚本)Python


我不需要浏览器仿真器。我只想运行一个使用解释器运行一些Linux命令的JavaScript文件。这可能吗?而且我宁愿不依赖Java,因为我的JavaScript文件应该在我的Linux机器上进行一些安装。我不知道我的问题是否清楚,但有人建议我使用JavaScript来完成这个任务,而我真的不知道如何做。 - Madalina
由于JavaScript是一种解释性语言,您需要一个解释器。为了使解释器运行,您需要另一种语言。 - Aaron Digulla
1
"为了让解释器运行,你需要其他语言。" 不需要另一种语言,只需要一个JavaScript引擎。例如V8(Google的JavaScript引擎)是一个已编译的可执行文件。你不需要其他语言的运行时(如Python、JVM、Perl等)来运行它。" - T.J. Crowder
这就是我的意思:你需要V8。 - Aaron Digulla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接