评论者:pesterhazy
关于替代方案,Bash 代码需要能够读取 .main
文件并将内容拆分为单独的参数。理想情况下,这应该仅使用 Bash 内置功能来完成,即不启动另一个进程。
使用纯 Bash 解析 JSON 或 EDN 是不可能的。另一种可能性是按新行分隔参数。但将内容重新读取到数组中的 Bash 代码不是简单的事情,至少不如使用 eval
解析内容简单。
使用 eval 内置工具的潜在缺点是,就像 Clojure 读取器一样,Bash 读取器可能会有副作用。例如,当内容包含 $(rm /important/file)
或 >/important/file
时。
然而,我们控制着编写文件的代码并将所有字符转义。所以美元和更大的字符将用反斜杠前缀。我认为这是安全的。
我必须考虑向前/后兼容性 - 很好的观点。