Страницы: 1
Добрый день!
Я пытаюсь создать небольшое приложение и вопрос такой, возможно ли отправлять из xul команды на linux консоль, такие как cat ls и тд. и получать результат в js.
если да то небольшой кусок кода или ссылка очень бы пригодился.
спасибо
Отсутствует
Можно запустить произвольный процесс, используя nsIProcess, в частности, sh/bash. Можно попытаться сделать вывод в файл и потом прочитать его (возможно, лучше в отдельном треде).
Еще можно сделать свой бинарный XPCOM-компонент.
Отсутствует
Я пытаюсь создать небольшое приложение и вопрос такой, возможно ли отправлять из xul команды на linux консоль, такие как cat ls и тд. и получать результат в js.
Выполнять команды можно
используя nsIProcess
. Только вот вывод в файл можно сделать только перенаправлением вывода (>,>>) (по крайней мере я другого варианта не нашёл).
А ещё (именно под линем - под виндой работает) у меня не получилось перенаправлять вывод именно через параметр nsIProcess - пришлось создавать командный файл (возможно я просто не доразобрался с файловым доступом)
Вот такой код работает под 2-3 под ХР и под Убунтой (с точностью до того, что он выдран из проекта с некоторыми изменениями, после чего не проверялся):
var tmpScriptFile = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("TmpD", Components.interfaces.nsIFile); tmpScriptFile.append("runFile.sh"); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); foStream.init(tmpScriptFile, 0x02 | 0x08 | 0x20, 0700, 0); foStream.write("#!/bin/sh\n", "#!/bin/sh\n".length); foStream.write("ls > out.txt", "ls > out.txt".length); foStream.close(); var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess); process.init(tmpScriptFile); var args = []; process.run(true, args, args.length);
--- ---
Отсутствует
А ещё (именно под линем - под виндой работает) у меня не получилось перенаправлять вывод именно через параметр nsIProcess - пришлось создавать командный файл
А что-нибудь типа /bin/bash -c нельзя?
Вот такой код работает под 2-3 под ХР и под Убунтой
Мммм, #!/bin/sh и ls под XP?
Отсутствует
А что-нибудь типа /bin/bash -c нельзя?
А что оно делает? А то в инете как-то не ищется
Мммм, #!/bin/sh и ls под XP?
Ну вот и помогай после этого людям
Просили под линь - получили под линь!
Ведь сразу написал, что
с точностью до того, что он выдран из проекта с некоторыми изменениями, после чего не проверялся
. Или вы серьёзно думаете, что это всё городилось для простого ls?..
С другой стороны наверное можно настроить тот же Cygwin, чтобы даже это работало
Отредактировано Forest (11-01-2009 21:17:09)
--- ---
Отсутствует
А что оно делает? А то в инете как-то не ищется
Вроде в любом мане (например, в этом) написано:
-c string If the -c flag is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0.
Только я не уверен, закроется ли bash после выполнения команды сам или надо еще кокой-нибудь ключ.
(Извините, давно прочитал пост и забыл ответить )
Отсутствует
Вроде в любом мане (например, в этом) написано:
Просто на вскидку не нашёл - подумал, что мб это какая-то хитрая опция, связанная с выводом - получается что непринципиально.
Только я не уверен, закроется ли bash после выполнения команды сам или надо еще кокой-нибудь ключ.
Приведённый мною пример закрывает нормально.
Проще всего попробовать
--- ---
Отсутствует
Проще всего попробовать
Просто это не настолько важно, чтобы перезагружаться в линукс, а в мане я быстро не нашел. Поэтому подумал, что тот, кто будет юзать это, попробует и нам скажет
Отсутствует
Поэтому подумал, что тот, кто будет юзать это, попробует и нам скажет
Действительно.
А я и не заметил, что топикстартер нас давно покинул, а мы тут междусобойчик строили.
Только я не уверен, закроется ли bash после выполнения команды сам или надо еще кокой-нибудь ключ.
Если не использовать каких-то специфических особенностей bash-а - всё должно работать
--- ---
Отсутствует
Страницы: 1