linux - 在 Chicken Scheme 中运行系统命令的最佳方式

标签 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"))

以下哪种方式是运行上述系统命令最安全的方式?

最佳答案

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

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

关于linux - 在 Chicken Scheme 中运行系统命令的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309928/

相关文章:

linux - 自定义 Linux 图形用户界面

python - 有没有办法在 python 中对不是你当前的操作系统使用 os.path 操作?

c++ - 如何将 XImage 保存为 PNG 格式的 base64 字符串?

regex - 在 Ubuntu 中使用正则表达式查找文件

python - 当 shell 命令循环运行时如何调用单个输出?

unix - 为什么 Bourne shell printf 遍历 %s 参数?

linux - 对文件夹中的所有文件运行命令的 Bash 脚本失败

linux - 跟踪线程内存和 CPU 消耗

c - 如何正确使用timerfd?

c - 为什么 stackoverflow 错误乱七八糟?