基本上,
(uiop:run-program "echo hello" :output *standard-output*)
输出hello
,而没有
(uiop:launch-program "echo hello" :output *standard-output*)
(uiop:launch-program "echo hello" :output #.*standard-output*)
(uiop:launch-program "echo hello" :output :interactive)
输出任何东西;但是,如果我真的跑
(uiop:run-program "echo hello" :output *standard-output*)
在他们之后,我确实得到了hello
4 次指示echo hello
确实运行了。为什么会这样?((force-output)
也没有改变任何东西。)
编辑:我将 SBCL 与 SLIME 一起使用。正如评论中所建议的,这在从终端运行时按预期工作(我得到了输出)。