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