评论者:pesterhazy
关于替代方案,Bash 代码需要能够读取 .main
文件并将内容拆分为单个参数。理想情况下,应该仅使用 Bash 内置函数来完成,即不启动另一个进程。
解析 JSON 或 EDN 使用纯 Bash 是不可能的。另一种可能性是通过换行符拆分参数。但是,将它们读入数组的 Bash 代码不会很简单,至少不会像使用 eval
来解析内容那样简单。
使用 eval 内置函数的一个潜在缺点是,与 Clojure 读取程序一样,Bash 读取程序也可能有副作用。例如,当内容包含 $(rm /important/file)
或 >/important/file
时。
然而,我们控制着写入文件的代码,并转义所有字符。因此,美元和大于符号前面会加上反斜杠。我认为这样是安全的。
我需要考虑向前/向后兼容性 - 这是一个好主意。