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