我想运行以下 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"))
以下哪种方式是运行上述系统命令最安全的方式?
最佳答案
如果文档的名称是硬编码的,那么使用什么并不重要。如果文件名是用户提供的,并且您依赖于像 system
这样的基于字符串的 API,则必须使用 qs
来引用参数。使用 process 单独传递参数可能更容易.
我不太了解 shell egg,但是如果你想真正喜欢 shell 调用,scsh-process egg是一个非常好的选择(完全披露:我是它的作者)。
关于linux - 在 Chicken Scheme 中运行系统命令的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309928/