2010-08-06 16 views
13

Czy istnieje sposób uruchamiania poleceń systemu Linux z javascript, który korzysta z autonomicznego interpretera (coś podobnego do SpiderMonkey, powłoki JavaScript)?Interpreter JavaScript dla systemu Linux

+0

Dlaczego nie napiszesz tego w bash? – oneat

+0

Tak, to była pierwsza opcja, ale ktoś zasugerował mi użycie javascript, więc dlatego zastanawiam się, czy to możliwe, czy nie. :) – Madalina

Odpowiedz

0

Rhino oferuje interpreter JavaScript napisany w Javie, który można wywołać z wiersza poleceń. Jeśli potrzebujesz emulatora przeglądarki, spróbuj Envjs.

Rhino nie może wykonać polecenia, ale można użyć org.mozilla.javascript.ScriptableObject.defineFunctionProperties() zdefiniować nową funkcję, która wywołuje pewne kodu Java, w którym można utworzyć nowy proces przy użyciu ProcessBuilder

[edytuj] Od JavaScript jest językiem interpretowanym, ty potrzebuję tłumacza. Aby uruchomić tłumacza, potrzebny jest inny język. Linux nie ma wbudowanego (tak jak w przypadku skryptów powłoki lub podobnych).

Jeśli potrzebujesz skryptowania, użyj Bash lub (dla bardziej złożonych skryptów) Python.

+0

Nie potrzebuję emulatora przeglądarki. Wszystko, co chcę zrobić, to uruchomić plik javascript (za pomocą interpretatora), który uruchamia niektóre polecenia linuksowe. Czy można to zrobić? A także wolałbym nie polegać na Javie, ponieważ mój plik javascript powinien wykonać pewne instalacje na moim komputerze z Linuksem. Nie wiem, czy moje pytania są jasne, ale zaproponowano mi użycie javascript do tego, a ja nie wiem jak. – Madalina

+0

Ponieważ JavaScript jest językiem interpretowanym, potrzebujesz tłumacza. Aby uruchomić tłumacza, potrzebny jest inny język. –

+1

* "Aby uruchomić tłumacza, potrzebny jest inny język". * Nie, nie potrzebujesz innego * języka *. Potrzebujesz tylko silnika JavaScript. V8 (silnik Google'a JavaScript), na przykład, jest skompilowanym plikiem wykonywalnym. Nie potrzebujesz innego środowiska uruchomieniowego języka (Python, JVM, perl, cokolwiek), aby go uruchomić. –

2

Możliwe jest zdefiniowanie funkcji JS, które będą wywoływać twoje funkcje C/C++, które mogą używać wywołania system(), wykonując niektóre polecenia linuksowe.

Więc trzeba

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

czy może

+0

Tak, muszę uruchomić coś podobnego do systemu ("rpm -i myapp.rpm"), ale bezpośrednio z Javascript, ponieważ nie mogę polegać na innych językach, takich jak C++ lub Java. – Madalina

6

Możesz użyć NodeJS. Ma moduł child_process, który może uruchamiać dowolne polecenia. NA PRZYKŁAD. child_process.spawn()

Gdy skrypt jest gotowy go uruchomić tak:

node myscript.js 
8

jslibs jest samodzielny interpreter JavaScript, który działa na Narzędzie linux32/64 i Windows.
Możesz łatwo uruchamiać polecenia systemu Linux za pośrednictwem bibliotek dostarczonych przez jslibs.

Powiązane problemy