【问题标题】:How to pass a vector of strings to java.shell in clojure?如何在clojure中将字符串向量传递给java.shell?
【发布时间】:2012-09-10 00:14:00
【问题描述】:

我正在尝试使用 (require [clojure.java.shell :refer [sh]]) 在 clojure 中执行 rsync 备份。函数 sh 将字符串作为参数,例如:

(sh "ls" "-las" "/home/")

但是,我发现自己将数据作为字符串向量到达 sh(例如 ["ls" "-las" "/home/"]),这当然会失败。这似乎是一个非常容易解决的问题,但我刚刚开始使用 clojure(以及 lisp 和函数式编程),我似乎无法让它工作。如何处理要传递给 sh 的向量?

任何建议将不胜感激。

【问题讨论】:

    标签: string vector clojure


    【解决方案1】:

    听起来你需要使用apply

    (apply sh arg-vector)
    

    apply 函数也会在其他 LISP 中弹出,允许您将参数列表传递给给定函数。在 Clojure 中,您不仅限于列表,还包括任何 seq-able 对象,包括向量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-30
      • 2020-06-16
      • 1970-01-01
      • 2018-09-02
      相关资源
      最近更新 更多