0

这是导致问题的代码的简化位:

#!/bin/bash

SRC=${BASH_ARGV[1]}
DEST=${BASH_ARGV[0]}

err=""
RSYNC="rsync -Dgoptrl --exclude 'backup-info'"

err=`$RSYNC "$SRC" "$DEST" 2>&1 | xargs -0`;
#err=`rsync -Dgoptrl --exclude 'backup-info' "$SRC" "$DEST" 2>&1 | xargs -0`;

rsync 复制所有内容,但名称为 backup-info 的目录不会被排除。但是最后一行确实有效(即它确实排除了备份信息)。在我看来,它们都一样,很困惑为什么一个有效而另一个无效。

谢谢,阿什

4

1 回答 1

2

BASH 常见问题解答 #50:“我试图将命令放入变量中,但复杂的情况总是失败!”

将命令放入数组中,然后执行数组。

RSYNC=(rsync -Dgoptrl --exclude 'backup-info')
err=`"${RSYNC[@]}" "$SRC" "$DEST" 2>&1 | xargs -0`;
于 2012-08-16T08:06:27.490 回答