2
我有一個腳本,它用一些動態生成的參數調用rsync
命令,但我無法正確傳遞它們。將動態生成的參數傳遞給腳本內的命令
下面是一些摘錄:
logfile="$logDir/$(timestamp) $name.log"
echo "something" >> "$logfile"
params="-aAXz --stats -h --delete --exclude-from $exclude --log-file=$logfile $src $dest"
if [ "$silent" = "" ]; then
params="-v $params --info=progress2"
fi
rsync $params
如果日誌文件是如/tmp/150507 test.log
,something
語句實際上是寫入/tmp/150507 test.log
,但rsync
將其日誌寫入/tmp/150507
(刪除第一個空白後的所有內容)。
如果我明確地引用在PARAMS日誌文件的名稱,rsync的拋出一個異常:
params="-aAXz --stats -h --delete --exclude-from $exclude --log-file=\"$logfile\" $src $dest"
錯誤:
rsync: failed to open log-file "/tmp/150507: No such file or directory (2)
Ignoring "log file" setting.
如何動態生成PARAMS不失能力在文件名中使用空格?
這不正是我在我的文章的後半部分提到的(以「如果我明確引用...」開頭)導致rsync錯誤嗎? – suamikim
檢查我編輯的答案。 – anubhava