Shell ( /bin/bash
) 正在for
循环中为从文件读取的变量添加单引号并导致rsync
失败。
我有一个shell脚本做一堆rsync
s。输入文件如下所示:
/home/account/this
子目录
for 循环如下所示:
IFS=$'\n'
for SOURCE_DEST in `cat file_list`
do
rsync -av -e 'ssh -p 2222' account@domain.com:$SOURCE_DEST
done
没有IFS=$'\n'
,默认情况下$SOURCE_DEST
只包含:
/home/account/this
而不是/home/account/this subdirectory
。
但是,当我使用 运行此脚本时,它会在诸如:IFS=$'\n'
周围加上单引号,这会导致 rsync 失败并做一些奇怪的事情。$SOURCE_DEST
'account@domain.com:/home/account/this subdirectory'
例子:
rsync --delete-after -av -e 'ssh -p 2222' 'account@domain.com:/home/account/this subdirectory'
失败了,我需要的是没有单引号的:
rsync --delete-after -av -e 'ssh -p 2222' account@domain.com:/home/account/this subdirectory