评论者:pesterhazy
关于替代方案,Bash代码需要能够读取.main
文件并将内容分割成单独的参数。理想情况下应该仅使用Bash内建命令完成,即不启动另一个进程。
使用纯Bash无法解析JSON,另一个可能性是按换行符分隔参数。但将Bash代码读回到数组中的操作不会很简单,至少不会像使用eval
解析内容那样简单。
使用内建命令eval的潜在缺点是,犹如Clojure reader,Bash reader也可能有副作用。例如,当内容包含$(rm /important/file)
或>/important/file
时。
然而,我们控制写入文件的代码,并转义所有字符。因此,美元符号和大于符号将前面加上反斜杠。我认为这是安全的。
我需要考虑前向/后向兼容性 - 一个好的观点。