小编sfr*_*lsi的帖子

在bash变量中使用--filter的rsync命令

这类似于我在stackoverflow上看到的一些其他rsync bash变量问题,但这些答案都没有解决我的具体问题.我想在bash脚本中运行以下命令,但是变量中包含rsync选项:

rsync -ahz --delete --filter=': .rsync-filter' source/ destination/
Run Code Online (Sandbox Code Playgroud)

我注意到bash实际上解释如下:

+ rsync -ahz --delete '--filter=: .rsync-filter' source/ destination/
Run Code Online (Sandbox Code Playgroud)

哪个在rsync中也可以正常工作.

当我尝试将这些值放在变量中时,我看到正在运行以下命令:

RSYNCOPTS="-ahz --delete --filter=: .rsync-filter"
rsync  ${RSYNCOPTS} source/ destination/
+ RSYNCOPTS='-ahz --delete --filter=: .rsync-filter'
+ rsync -ahz --delete --filter=: .rsync-filter source/ destination/
unexpected end of filter rule: :

RSYNCOPTS="-ahz --delete --filter=': .rsync-filter'"
rsync  ${RSYNCOPTS} source/ destination/
+ RSYNCOPTS='-ahz --delete --filter='\'': .rsync-filter'\'''
+ rsync -ahz --delete '--filter='\'':' '.rsync-filter'\''' source/ destination/
Unknown filter rule: `':'

RSYNCOPTS="-ahz --delete '--filter=: .rsync-filter'"
rsync  ${RSYNCOPTS} source/ destination/ …
Run Code Online (Sandbox Code Playgroud)

variables bash rsync quoting

3
推荐指数
1
解决办法
2277
查看次数

标签 统计

bash ×1

quoting ×1

rsync ×1

variables ×1