在 Chicken Scheme 中 运行 系统命令的最佳方式
Best way to run a system command in Chicken Scheme
我想 运行 按照 Linux 命令打开文档,应用程序已在系统中注册:
xdg-open mydocument.pdf
我看到有很多命令可用:运行、运行*、capture、shell、execute、system* 等。
来自:http://wiki.call-cc.org/eggref/4/shell and https://wiki.call-cc.org/man/4/Unit%20utils
我还需要命令的结果(运行 成功与否)。
以下(没有 * 的系统)虽然没有列出,但似乎也运行良好:
(define result (system "xdg-open mydocument.pdf"))
以上哪种方式最安全 运行 系统命令?
如果文档的名称是硬编码的,那么使用什么并不重要。如果文件名是用户提供的,如果您依赖基于字符串的 API(例如 system
),则必须使用 qs
来引用参数。使用 process.
单独传递参数可能更容易
我不太了解 shell egg,但是如果您想真正喜欢 shell 调用,scsh-process egg 是一个非常好的选择(完全披露: 我是它的作者)。
我想 运行 按照 Linux 命令打开文档,应用程序已在系统中注册:
xdg-open mydocument.pdf
我看到有很多命令可用:运行、运行*、capture、shell、execute、system* 等。
来自:http://wiki.call-cc.org/eggref/4/shell and https://wiki.call-cc.org/man/4/Unit%20utils
我还需要命令的结果(运行 成功与否)。
以下(没有 * 的系统)虽然没有列出,但似乎也运行良好:
(define result (system "xdg-open mydocument.pdf"))
以上哪种方式最安全 运行 系统命令?
如果文档的名称是硬编码的,那么使用什么并不重要。如果文件名是用户提供的,如果您依赖基于字符串的 API(例如 system
),则必须使用 qs
来引用参数。使用 process.
我不太了解 shell egg,但是如果您想真正喜欢 shell 调用,scsh-process egg 是一个非常好的选择(完全披露: 我是它的作者)。