在Common Lisp Linux终端中出现大量输出

4
我写了一个clisp程序,它会输出n组x*y的随机整数。我想让n等于100,但是由于我的Linux终端不够长,无法复制和粘贴整个程序。
我希望能找到最简单的方法来捕获2200行Linux终端输出。

4
你可以使用 ">" 将输出重定向到文件中,比如:cl > outputFile这样就可以将输出保存到名为 "outputFile" 的文件中了。 - Kizaru
1
完成了。运行正常。有点混乱,因为我必须使用制表符...这绝对是我想做的,但是否有一种方法可以将输出的副本重定向到文件中,同时仍然在终端上打印输出? - malenkylizards
4
http://ss64.com/bash/tee.html - Ken
3个回答

3

在Lisp中,有多种将输出保存到文件的方法。

  • 您可以将REPL交互保存到文件中。请参见DRIBBLE函数。

  • 您还可以使用WITH-OPEN-FILE将您的代码封装起来。

例如:

(with-open-file (*standard-output* "/tmp/foo.text" :direction :output)
   (your-print-function-here))

3

针对上面的评论,我在命令行中使用sbcl来捕获输出。只需加载库,然后评估所需内容即可。

示例:

sbcl --noinform --load "compass.lisp" \
                --eval "(print (table-egs (cocomo81)))" \
                --eval "(quit)" > copy.txt

1

有几种不同的Linux终端程序。它们都有更或少可访问的方式来配置回滚行数。我现在不在我的Linux框上,但我记得这个选项在GNOME终端的首选项菜单下相对明显的位置,我想KDE也是类似的。

我赞成使用shell重定向的建议;那是更普遍有用的策略。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接