评论者:pesterhazy
关于替代方案,Bash代码需要能够读取.main
文件并将内容分割成单独的参数。理想情况下,这应该只使用Bash内建命令来完成,也就是说,不启动另一个进程。
使用纯Bash无法解析JSON或EDN。另一个可能性是将参数通过换行符分隔。但这将需要将内容重新读入数组的Bash代码,这并非易事,或者至少不像使用eval
解析内容那样简单。
使用内建的eval可能会导致副作用,就像Clojure阅读器一样,Bash阅读器可能会有副作用。例如,当内容包含$(rm /important/file)
或>/important/file
时。
然而,我们控制写入文件的代码,并转义所有字符。所以美元符号和更大的符号将会有一个反斜杠前缀。我认为这是安全的。
我必须考虑向后/向前兼容性 - 很好的观点。