在Chicken Scheme中运行系统命令的最佳方法

时间:2017-04-09 17:47:10

标签: linux shell operating-system scheme chicken-scheme

我想按照Linux命令运行,该命令打开文件,并在系统中注册了应用程序:

xdg-open mydocument.pdf

我看到很多命令可用:run,run *,capture,shell,execute,system *等。

来自:http://wiki.call-cc.org/eggref/4/shellhttps://wiki.call-cc.org/man/4/Unit%20utils

我还需要命令的结果(成功运行与否)。

以下(没有*的系统)虽然没有列出,但似乎运作良好:

(define result (system "xdg-open mydocument.pdf"))

以上哪一项是最安全的运行系统命令的方法?

1 个答案:

答案 0 :(得分:1)

如果文档的名称是硬编码的,那么使用它并不重要。如果文件名是用户提供的,那么如果您依赖基于字符串的API(例如qs),则必须使用system来引用参数。使用process单独传递参数可能更容易。

我不太了解shell蛋,但是如果你想真的很喜欢shell调用,scsh-process egg是一个非常好的选择(完全披露:我是它的作者)。