¿Hay alguna manera de ejecutar comandos de Linux desde JavaScript que utiliza un intérprete independiente (algo similar con SpiderMonkey, JavaScript shell)?Intérprete de Javascript para Linux
Respuesta
Rhino ofrece un intérprete de JavaScript escrito en Java que puede ser llamado desde la línea de comandos. Si necesita un emulador de navegador, intente Envjs.
Rhino no puede ejecutar comandos pero se puede utilizar org.mozilla.javascript.ScriptableObject.defineFunctionProperties()
para definir una nueva función que requiere un cierto código de Java en el que se puede crear un nuevo proceso utilizando ProcessBuilder
[EDIT] Desde JavaScript es un lenguaje interpretado, se necesita un intérprete Para que se ejecute el intérprete, necesita otro idioma. Linux no viene con un built-in (como lo hace para scripts de shell o similares).
Si necesita secuencias de comandos, utilice Bash o (para los scripts más complejos) Python.
No necesito un emulador de navegador. Todo lo que quiero hacer es ejecutar un archivo javascript (usando un intérprete) que ejecute algunos comandos de Linux. ¿Es posible hacer esto? Y también preferiría no depender de Java, porque mi archivo javascript debería hacer algunas instalaciones en mi máquina Linux. No sé si mis preguntas son claras, pero me sugirieron usar javascript para hacer esto, y realmente no sé cómo hacerlo. – Madalina
Como JavaScript es un lenguaje interpretado, necesita un intérprete. Para que se ejecute el intérprete, necesita otro idioma. –
* "Para que se ejecute el intérprete, necesita otro idioma." * No, no necesita otro * idioma *. Solo necesitas un motor de JavaScript. V8 (motor de JavaScript de Google), por ejemplo, es un ejecutable compilado. No necesita otro tiempo de ejecución de idioma (Python, JVM, Perl, lo que sea) para ejecutarlo. –
Es posible definir las funciones JS que llamarán a sus funciones C/C++ que podrían usar la llamada system()
, ejecutando algunos comandos de linux.
forma de mono araña: https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder 's_Guide # Native_functions
Google V8 es también una opción: http://code.google.com/apis/v8/embed.html#accesssors
por lo que tendría
system('rpm -i myapp.rpm');
system('rpm -i myapp2.rpm');
o tal vez
install('myapp.rpm');
install('myapp2.rpm');
Sí, necesito ejecutar algo como system ('rpm -i myapp.rpm'), pero directamente desde Javascript, porque no puedo depender de otros lenguajes, como C++ o Java. – Madalina
Puede usar NodeJS. Tiene un módulo child_process que puede ejecutar comandos arbitrarios. P.EJ. child_process.spawn()
Una vez finalizada la secuencia de comandos se ejecuta como esto:
node myscript.js
- 1. Javascript para reemplazar intérprete Python
- 2. intérprete de prólogo en Linux?
- 3. JavaScript intérprete en Bash
- 4. intérprete de scriptable JavaScript con enlaces para PHP o Python?
- 5. ¿Hay algún intérprete de código abierto para JavaScript?
- 6. ¿Hay un intérprete para C?
- 7. Python para iOS intérprete
- 8. ¿Intérprete para el iPhone?
- 9. ¿Intérprete interactivo de ActionScript?
- 10. establece ipython como intérprete para pydev
- 11. Compilador Fast Standard ML o intérprete de bytecode, con loop read-eval-print, para Linux?
- 12. Intérprete personalizado para expresiones matemáticas
- 13. Necesito un intérprete de fórmula para .Net
- 14. Quiero implementar un intérprete de esquema para estudiar SICP
- 15. ¿Hay un intérprete javascript en el servidor, como php?
- 16. ocaml intérprete
- 17. ¿Qué intérprete LOLCODE usar?
- 18. ¿Cómo se usa Java para llamar al intérprete de Rhino Javascript?
- 19. Cron intérprete de sintaxis?
- 20. intérprete AST?
- 21. Complemento intérprete C# para visual studio
- 22. Intérprete/compilador Prolog integrado para Java
- 23. ¿Hay un intérprete interactivo para C#?
- 24. PHP 5.4 Intérprete para Eclipse PDT
- 25. ¿Hay un intérprete toploop mejorado para OCaml?
- 26. ¿Hay un intérprete Objective-C para Mac?
- 27. Análisis en Haskell para un intérprete simple
- 28. Compilador/intérprete de Java
- 29. intérprete de Java?
- 30. compilador C++ intérprete/consola/snippet
¿Por qué no lo escribes en bash? – oneat
Sí, esa fue la primera opción, pero alguien me sugirió que usara javascript, así que es por eso que me pregunto si es posible o no. :) – Madalina