我想运行以下 Linux 命令,该命令使用在系统中注册的应用程序打开文档:
xdg-open mydocument.pdf
我看到许多命令可用:运行,运行*,捕获,shell,执行,系统*等。
寄件人: http://wiki.call-cc.org/eggref/4/shell 和 https://wiki.call-cc.org/man/4/Unit%20utils
我还需要命令的结果(运行成功与否(。
以下(没有*的系统(,虽然没有列出,但似乎也运行良好:
(define result (system "xdg-open mydocument.pdf"))
以下哪一种是运行上述系统命令的最安全方法?
如果文档的名称是硬编码的,则使用什么并不重要。如果文件名是用户提供的,则在依赖于基于字符串的 API (如 system
(时,必须使用 qs
引用参数。 使用 process 单独传递参数可能更容易。
我不太了解带壳的鸡蛋,但如果你想真正花哨地使用外壳调用,scsh-process 鸡蛋是一个非常好的选择(完全披露:我是它的作者(。