如何执行特定于系统的命令并在Clojure中获取响应?例如,我们假设我们在Linux机器上,如何调用top
或free
,并获得结果以便进一步处理?
答案 0 :(得分:71)
(use '[clojure.java.shell :only [sh]])
(sh "free")
(sh "top" "-bn1")
另请参阅:http://clojuredocs.org/clojure_core/clojure.java.shell/sh
答案 1 :(得分:12)
您应该能够使用Java Runtime.exec方法,如下所示:
(import 'java.lang.Runtime)
(. (Runtime/getRuntime) exec "your-command-line-here")
Runtime.exec方法返回一个Process对象,您可以根据需要查询该对象以获取标准输出等。