1

我是使用 clisp-2.49 的 lisp 新手。

我正在尝试编写 lisp 来模仿这个相当简单的 bash:

for i in $(program-1)
do
  some-logic
  program-2 $i
done | program-3

执行程序 1 和 3 的方法有很多种(run-program、make-pipe-io-stream 可能还有其他),所有这些方法都会评估表单并返回一个流供我使用。但是对于程序 2,我需要运行程序并告诉表单使用我已经打开的流。我找不到这方面的表格。我是否忽略了一些明显的事情?是否有一些我不知道的微妙之处?

非常感谢,R。

4

1 回答 1

1

您可以使用未记录的函数ext::launch并传递它:output pipe-stream

或者,您可以将整个 shell 脚本作为字符串传递给EXT:RUN-SHELL-COMMAND

然而,一般来说,Lisp 并不是为了替代 shell 而设计的program-*在 shell 中处理执行可能会更好。

于 2013-08-27T14:04:03.337 回答