再遇 bash 引号问题

最近在工作中再次遇到引号的问题,与以往不同,这次这个更加棘手。

问题是这样的:我要在某个 bash 脚本中调用某个命令,根据配置文件来决定应该传递哪些参数给调用的那个命令。而且,该命令的其中一个参数中带有空格,所以必须使用双引号把这一参数作为整体传递进去。你可以试一下,无论怎么使用引号都无法解决这个问题。

最后,我在 Bash FAQ 中找到了答案!解决方法是,把该命令的每一个参数作为 bash 数组的一个元素,最后用 “${args[@]}” 一起传递给该命令即可!

另,Bash FAQ 质量非常高,强烈推荐认真读一下。