Предположим, что у нас есть команда X
, которая может быть выполнена в оболочке и возвращает некоторый результат в stdout и stderr. Возможно ли это сделать из R или/и Matlab? И если да, как можно обрабатывать результат команды?
Как запустить оболочку script из R или/и из Matlab?
Ответ 1
вы можете использовать команду system() для запуска shellscripts, системных команд и т.д. в R
он задокументирован в http://cran.r-project.org/doc/manuals/R-lang.html#System-and-foreign-language-interfaces
Ответ 2
В соответствии с этим сообщением вы можете вызывать что угодно из любой ОС, используя системную функцию. Примерами являются [status, result] = system(’dir’);
, чтобы вызвать команду dir
на UNIX-подобной ОС.
system('command')
вызывает операционной системы для запуска указанного команды, например, dir или ls или UNIX shell script и направляет вывода на программное обеспечение MATLAB. команда выполняется в системной оболочке, который может быть не оболочкой из который вы запустили MATLAB. Если команда успешно выполняется, ans равно 0. Если команда не работает или не существует вашей операционной системы, ans является ненулевое значение и пояснительную появляется сообщение.
[status, result] = system('command')
требует, чтобы операционная система запускалась команды и направляет вывод на MATLAB. Если команда выполняется успешно, статус равен 0, и результат содержит вывод из команды. Если команда не выполняется или не существует на вашем рабочем система, статус является ненулевым значением и результат содержит пояснительную сообщение.
Смотрите блог Майкла Каца здесь