Comment puis-je exécuter des commandes spécifiques au système et obtenir leur réponse dans le clojure? Par exemple, supposons que nous sommes sur une machine Linux, comment puis-je appeler top
ou free
et obtenir leurs résultats pour un traitement ultérieur?
(use '[clojure.Java.Shell :only [sh]])
(sh "free")
(sh "top" "-bn1")
Voir aussi: http://clojureocs.org/clojure_core/clojure.java.shell/sh
Vous devriez être capable d'utiliser le Java exécutant la méthode comme suit:
(import 'Java.lang.Runtime)
(. (Runtime/getRuntime) exec "your-command-line-here")
La méthode Runtime.Exec renvoie un objet A processus que vous pouvez interroger pour obtenir la sortie standard, etc. au besoin.
Si vous êtes prêt à obtenir un peu plus haut en termes d'abstractions (bien que non si élevé), je recommanderais ConCH , comme je l'ai trouvé de manière très lisible.