command-line - 如何在 Racket 中返回命令行结果?

标签 command-line scheme racket

我可以用 (system "some command") 用 Racket 发出 bash 命令,但该函数返回 #t 而不是来自命令行的结果输出,它只打印。如何获得与函数一起返回的命令的结果?

最佳答案

system程序集stdout到参数值 current-output-port .这意味着我们可以收集写入 current-output-port 的所有内容。到一个字符串并返回。构造 with-output-to-stringcurrent-output-port到不打印任何内容的端口,但最终将写入端口的任何内容作为字符串返回。

> (with-output-to-string (lambda () (system "date")))
"Sat Jun 25 12:20:12 CEST 2016\n"

关于command-line - 如何在 Racket 中返回命令行结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38026538/

相关文章:

java - 命令行参数设计是否正确?

design-patterns - 有人可以向我展示使用方案的策略模式的简单示例吗?

clojure - 在 Racket 中Clojure的迭代函数等效于什么

delphi - Delphi执行命令行命令

php - 带格式的Mysql字符串输入

command-line - 如何使用 ImageMagick 自动裁剪桶形失真图像?

c - 使用 GNU guile 过滤 C 结构

testing - 在 Scheme 中如何检查一个值是否为 "error"类型?

lisp - 方案: "expects 1 argument, given 4"奇怪的行为

lambda - 如何仅使用 lambda 表达式在 Racket(或 Scheme)中编写等于谓词