从Chicken Scheme获取系统命令的输出

时间:2013-11-26 17:32:45

标签: chicken-scheme

如何从Chicken Scheme中获取系统命令的输出?

以下是我通常在NewLISP中执行的操作:

(nth 0 (exec "<COMMAND>")) 
;; the `(nth 0...` is just there 'cause I only care about the first element in 
;; the list returned by `exec`

2 个答案:

答案 0 :(得分:2)

鸡场计划中内置的posix单元具有呼叫输出管道。它可以与utils单元中的read-all(也是内置于Chicken Scheme)结合使用来读取shell命令的输出:

#;1> (use posix)
#;2> (call-with-input-pipe "echo hello world" read-all)
"hello world\n"

http://wiki.call-cc.org/man/4/Unit%20posix#call-with-output-pipe

http://wiki.call-cc.org/man/4/Unit%20utils#read-all

答案 1 :(得分:1)

我做了一个快速的谷歌搜索,我遇到了鸡蛋,shell

以下是我最终使用capture蛋中的shell函数的方法。

(use shell)
(capture "ls -d ./")
;; -> "./\n"