【发布时间】:2013-08-28 12:30:11
【问题描述】:
我想在 Guile 中创建两个进程,并将其中一个的输出(stdout)作为输入(stdin)发送到另一个。
使用下面的例子,如何做到这一点?
echo "foo bar" | wc
输出:
1 2 8
【问题讨论】:
我想在 Guile 中创建两个进程,并将其中一个的输出(stdout)作为输入(stdin)发送到另一个。
使用下面的例子,如何做到这一点?
echo "foo bar" | wc
输出:
1 2 8
【问题讨论】:
是的,您可以使用open-output-pipe:
(let ((p (open-output-pipe "wc")))
(display "The quick brown fox jumps over the lazy dog.\n" p)
(close-pipe p))
这相当于echo "The quick brown fox jumps over the the lazy dog." | wc(包括echo 的隐式换行符,因为我就是这么特别,哈哈)。
当然,有一个open-input-pipe 类似物。阅读 Guile 手册的Pipes 部分了解更多详细信息。
【讨论】:
echo "The quick brown fox jumps over the lazy dog." | wc
generate some data | grep something in it | sed something more 类型的命令,而不是使用多个管道。 Guile 的 posix 命令以不同/意想不到的方式接受参数,很难找到有用/全面的文档和示例