使用OCaml收集外部命令的输出

Rij*_*pur 11 unix ocaml

在OCaml中调用外部命令并收集其输出的正确方法是什么?

在Python中,我可以这样做:

os.popen('cmd').read()
Run Code Online (Sandbox Code Playgroud)

如何在OCaml中获取所有外部程序的输出?或者,更好的是,OCaml与Lwt?

谢谢.

Nor*_*sey 14

您需要Unix.open_process_in,它在OCaml系统手册3.10版的第388页中有所描述.

  • http://caml.inria.fr/pub/docs/manual-ocaml/libref/Unix.html#VALopen_process_in (3认同)

sma*_*uck 7

对于Lwt,

val pread:?env:string array - > command - > string Lwt.t

似乎是一个很好的竞争者.文档:http://ocsigen.org/docu/1.3.0/Lwt_process.html