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