首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Clojure中,如何向Clojure.java.shell/sh创建的进程发送退出命令

在Clojure中,可以使用Clojure.java.shell/sh函数创建进程,并且可以通过向进程发送退出命令来终止进程。

要向Clojure.java.shell/sh创建的进程发送退出命令,可以使用进程的输出流(:out)或错误流(:err)来发送命令。首先,我们需要使用Clojure.java.io/writer函数创建一个写入流,然后将其传递给进程的输入流(:in)。

下面是一个示例代码,演示如何向Clojure.java.shell/sh创建的进程发送退出命令:

代码语言:txt
复制
(require '[clojure.java.shell :refer [sh]])
(require '[clojure.java.io :as io])

(let [process (sh "ls")
      exit-command "exit\n"
      writer (io/writer (:in process))]
  (.write writer exit-command)
  (.flush writer)
  (.close writer)
  (sh "echo" "Process exited with code" (:exit process)))

在上面的示例中,我们首先使用sh函数创建了一个进程,该进程执行了ls命令。然后,我们定义了一个exit-command变量,其中包含了要发送给进程的退出命令。接下来,我们使用io/writer函数创建了一个写入流writer,并将其传递给进程的输入流(:in)。然后,我们使用.write方法将退出命令写入流中,使用.flush方法刷新流,最后使用.close方法关闭流。

通过以上操作,我们成功向进程发送了退出命令。最后,我们使用sh函数执行了echo命令,打印出进程的退出状态码。

请注意,上述示例中的命令仅用于演示目的。实际使用时,你需要根据具体的需求和命令来修改代码。

关于Clojure和Clojure.java.shell的更多信息,你可以参考以下链接:

  • Clojure官方网站:https://clojure.org/
  • Clojure.java.shell文档:https://clojure.github.io/clojure/clojure.java.shell-api.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券