2015-06-01 5 views
0

Я думаю, что я имею в виду в названии. Я попытался выполнить поиск, если можно запустить скрипт bash из ocaml, например, из java или из php, но я не смог найти. я знаю, что мы можем использовать OCaml как язык сценариев, но это не то, что я хочу Ocaml as a scripting language Другими словамиЗапустить скрипт bash из ocaml

ответ

5

Из документации OCaml:

val command : string -> int 

Так что, если вы хотите, чтобы вызвать скрипт из OCaml, сделайте следующее:

let status = Sys.command "./myexecutable.sh" in 
Printf.printf "status = %d\n" status 

Не стесняйтесь делать то, что вы хотите с кодом выхода.

+3

Ваша строка формата сломана: возвращаемый статус является 'int' так что вам нужно использовать либо'% d' или '% i', а не'% s' (для строк). – gallais

+1

Спасибо за замечание, это небольшая ошибка, которую я изменил :) – alifirat

2

Только в случае, если вы заинтересованы в сборе вывод скрипта Баш,

let() = 
    (* Just using pstree as an example, you can pick something else *) 
    let ic = Unix.open_process_in "pstree" in 
    let all_input = ref [] in 
    try 
    while true do 
     all_input := input_line oc :: !all_input 
    done 
    with 
    End_of_file -> 
    (* Just an example, you can do something else here *) 
    close_in ic; 
    List.iter print_endline !all_input 
+0

Я думаю, что вы имеете в виду 'oc' в строке 7. Также, как лучше всего получить доступ к' Unix', просто поставлю '#load ' unix.cma "' в верхней части файла? –

Смежные вопросы