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