18

Is there a way to run linux commands from javascript that uses a standalone interpreter (something similar with SpiderMonkey, JavaScript shell)?

asked Aug 6, 2010 at 8:21
2
  • Why don't you write it in bash? Commented Aug 6, 2010 at 8:47
  • Yes, that was the first option, but someone suggested me to use javascript, so thats why I'm wondering if it is possible or not. :) Commented Aug 6, 2010 at 8:53

4 Answers 4

11

You could use NodeJS. It has a child_process module that can run arbitrary commands. E.G. child_process.spawn()

When your script is finished you run it like this:

node myscript.js
answered Oct 5, 2010 at 21:40
Sign up to request clarification or add additional context in comments.

Comments

8

jslibs is a standalone JavaScript interpreter that runs on Linux32/64 and Windows.
You can easily run linux commands through the libraries provided by jslibs.

answered Apr 4, 2011 at 11:23

Comments

2

It's possible to define JS functions that will call your C/C++ functions that could use system() call, executing some linux commands.

So you would have

system('rpm -i myapp.rpm');
system('rpm -i myapp2.rpm');

or perhaps

install('myapp.rpm');
install('myapp2.rpm');
answered Aug 6, 2010 at 8:38

1 Comment

Yes, I need to run something like system('rpm -i myapp.rpm'), but directly from Javascript, because I can't depend on other languages, like C++ or Java.
0

Rhino offers a JavaScript interpreter written in Java which can be called from the command line. If you need a browser emulator, try Envjs.

Rhino can't execute commands but you can use org.mozilla.javascript.ScriptableObject.defineFunctionProperties() to define a new function which calls some Java code in which you can create a new process using ProcessBuilder

[EDIT] Since JavaScript is an interpreted language, you need an interpreter. For the interpreter to run, you need some other language. Linux doesn't come with one built-in (like it does for shell scripts or similar).

If you need scripting, use Bash or (for more complex scripts) Python.

answered Aug 6, 2010 at 8:23

4 Comments

I don't need a browser emulator. All I want to do is run a javascript file (using an interpretor) that runs some linux commands. Is it possible to do this? And also I would prefer not to depend on Java, because my javascript file should make some installations on my linux machine. I don't know if my questions is clear, but I was suggested to use javascript for doing this, and I don't realy know how.
Since JavaScript is an interpreted language, you need an interpreter. For the interpreter to run, you need some other language.
"For the interpreter to run, you need some other language." No, you don't need another language. You just need a JavaScript engine. V8 (Google's JavaScript engine), for instance, is a compiled executable. You don't need another language runtime (Python, the JVM, perl, whatever) to run it.
Which is what I meant: You need V8.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.