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