为什么我的脚本中的命令行在执行之前被修改

为什么我的脚本中的命令行在执行之前被修改

我正在尝试创建一个 rsync 脚本,但参数有问题。这是导致问题的脚本部分。

rsync -inaruAX --stats --exclude={.[a-z]} $source $destination > "$logfile"

问题是,这会到达 shell(在 bash -x 中执行脚本)

+ rsync -inaruAX --stats '--exclude={.[a-z]}' /home/brian/ /media/brian/backup/Home/

问题在于排除选项周围的引号。正如您在源代码行中看到的,这些引号不存在,并且以某种方式被 bash 添加?我知道还有其他方法可以编写排除代码,但我更愿意使用此方法,所以请 - 有人可以解释一下生成此选项周围的引号发生了什么吗?

相关内容