评论者:pesterhazy
关于替代方案,Bash 代码需要能够读取 .main
文件并将内容拆分为单独的参数。理想情况下,这应该仅使用 Bash 内置函数完成,即不启动其他进程。
使用纯 Bash 不可能解析 JSON 或 EDN。另一个可能性是将参数通过换行符分隔。但是,将内容读入数组的 Bash 代码不会是微不足道的,或者说不如使用 eval
解析内容简单。
使用内置函数 eval 的潜在缺点是,像 Clojure 读者一样,Bash 读者可能会有副作用。例如,当内容包含 $(rm /important/file)
或 >/important/file
时。
然而,我们控制了写入文件的代码并转义了所有字符。所以美元符号和大于符号前面都会加上反斜杠。我认为这是安全的。
我必须考虑向前/向后兼容性问题 - 很好的一处思索。