Ответ 1
jslibs - это автономный интерпретатор JavaScript, который работает на Linux32/64 и Windows.
Вы можете легко запускать команды linux через библиотеки, предоставленные jslibs.
Есть ли способ запуска linux-команд из javascript, который использует автономный интерпретатор (что-то похожее на SpiderMonkey, оболочку JavaScript)?
jslibs - это автономный интерпретатор JavaScript, который работает на Linux32/64 и Windows.
Вы можете легко запускать команды linux через библиотеки, предоставленные jslibs.
Вы можете использовать NodeJS. Он имеет модуль child_process, который может запускать произвольные команды. НАПРИМЕР. child_process.spawn()
Когда ваш script закончен, вы выполните его следующим образом:
node myscript.js
Можно определить функции JS, которые будут вызывать ваши функции C/С++, которые могли бы использовать вызов system()
, выполняя некоторые команды linux.
Путь паука-паука: https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder 's_Guide # Native_functions
Google V8 также является опцией: http://code.google.com/apis/v8/embed.html#accesssors
Итак, у вас будет
system('rpm -i myapp.rpm');
system('rpm -i myapp2.rpm');
или, возможно,
install('myapp.rpm');
install('myapp2.rpm');
Rhino предлагает JavaScript-интерпретатор, написанный на Java, который можно вызывать из командной строки. Если вам нужен эмулятор браузера, попробуйте Envjs.
Rhino не может выполнять команды, но вы можете использовать org.mozilla.javascript.ScriptableObject.defineFunctionProperties()
для определения новой функции, которая вызывает некоторый код Java, в котором вы можете создать новый процесс, используя ProcessBuilder
[EDIT] Поскольку JavaScript является интерпретированным языком, вам нужен интерпретатор. Для запуска интерпретатора вам нужен другой язык. Linux не поставляется с одним встроенным (например, для сценариев оболочки или аналогичных).
Если вам нужны сценарии, используйте Bash или (для более сложных скриптов) Python.