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的副本的一切,但名稱爲備份信息的目錄沒有得到排除。然而,最後一行確實有效(即,它排除了備份信息)。他們對我來說看起來都一樣,對於爲什麼一個人工作而另一個不工作感到困惑。
謝謝, 灰
哇,那是一個快速反應!謝謝!這適用於我,但儘管閱讀您提到的文章,我仍然感到困惑。好吧,我得到的單引號是字面的,而不是語法的,但'備份信息'不包含空格,那麼爲什麼WordSplitting會將它分割? – Ash 2012-08-16 09:22:07
@Ash Word拆分不會拆分'backup-info',但會拆分'備份信息'。你原來的代碼中發生的事情是,單引號是字面對待的(因爲它們在雙引號內),所以'rsync'看到的參數是'--exclude'''backup-info''。如果你有一個名爲「backup-info」的文件,它將被排除。 – Gilles 2012-08-16 10:07:47
哦,我明白了。感謝吉爾。 – Ash 2012-08-17 03:11:54