评论由:pesterhazy Yap
关于替代方案,Bash代码需要能够读取.main
文件并将内容拆分为单个参数。理想情况下,这应该只使用Bash内置功能完成,即不启动另一个进程。
仅使用Bash无法解析JSON或EDN。另一种可能性是按换行符分隔参数。但将读取回数组的Bash代码不会很简单,至少不如使用eval
解析内容简单。
使用eval内置的缺点是,与Clojure读取器一样,Bash读取器可能有副作用。例如,当内容包含$(rm /important/file)
或>/important/file
时。
但是,我们控制着写入文件的代码并转义所有字符。所以美元符号和更大的符号前面应该加上反斜杠。我认为这是安全的。
我必须考虑向前/向后兼容性 - 这是一个好点子。