评论由:pesterhazy 提出
关于替代方案,Bash代码需要能够读取.main
文件并将内容拆分成单独的参数。理想情况下,这应该只使用Bash内建函数完成,即没有派生另一个进程。
解析JSON或EDN在纯Bash中是不可能的。另一个可能的方法是通过换行符分离参数。但这种将内容读取回数组中的Bash代码并不是简单的事,至少比使用eval
解析内容更复杂。
使用内建函数eval的潜在缺点是,与Clojure reader类似,Bash reader可以有副作用。例如,当内容包含$(rm /important/file)
或>/important/file
时。
然而,我们控制编写文件的代码并转义所有字符。所以美元和大于字符都将是前缀带有反斜杠的。我认为这是安全的。
我必须考虑向后/向前兼容性 - 一个很好的观点。