在bash脚本中拼接参数的问题
注意
本文最后更新于 2023-07-30,文中内容可能已过时。
在脚本里面使用rsync
这个命令的时候, 需要根据文件的情况动态的给予参数,所以考虑使用变量来实现这个需求。
笔者刚开始在做这件事的时候碰到了一个比较蛋疼的事情。
拼接的参数会自动使用一个引号括起来, rsync
识别不到那么多参数, 好像只是识别到了第一个,后面的都被忽略掉了。
我刚开始好像是使用一个单一的变量来尝试控制参数。(大约1,2个月以前的东西,记得不是很清楚😂)
|
|
上述代码中, 最后一段里面的 "$include_arg"
变量,经过我的测试,基本都会被解释成"--include=*.jar --include=*config.json"
。
这个参数肯定是有问题的,rsync
识别不出来。
经过在stackOverflow
上的搜索,发现使用数组可以处理掉这个问题。
代码修改成如下所示的情况, 就可以正常使用了。
|
|
修改成这样之后, ${include_arg[@]}
会展开成3个独立的参数传给rsync
。