在脚本中运行多个 rsync 执行

san*_*oon 2 bash rsync

我正在尝试从 bash 脚本运行多个 rsync 命令,但只有第一个触发。我试过将命令与&&和链接,;但都不起作用。

#! /bin/bash
rsync -ahPr --delete-excluded --exclude='.DS_Store' --exclude=Caches/ --ignore-errors --stats --log-file=$LOGFILE --files-from=$FILESFROM ~/$SOURCE /Volumes/$DEST &&
rsync -avh --progress ~/.profile /Volumes/$DEST/_profile/profile &&
rsync -avh --progress ~/.gitconfig /Volumes/$DEST/_profile/gitconfig &&
rsync -avh --progress ~/.ssh/ /Volumes/$DEST/_profile/ssh/ &&
rsync -avh --progress ~/.vim/ /Volumes/$DEST/_profile/vim/
Run Code Online (Sandbox Code Playgroud)

我将最后 4 个命令作为单独的命令执行,因为我正在动态重命名文件/目录 - 不确定是否有更好的方法来做到这一点?

我正在执行脚本bash -x myscript.sh以查看它是否出现任何错误,但没有。

Pet*_*bec 5

跑步

rsync && rsync

将在第一个完成后启动第二个 rsync。你要

rsync&

解释:

a && b

a 运行,b 仅在 a 竞争成功后运行

a || b

a 运行,b 仅在 a 未成功完成时才运行下一个

a; b

无论成功,a运行,b接下来运行

a& b

a 运行,被发送到后台。这相当于运行 a,输入 ctrl-Z 和运行 bg

因此,如果您希望您的程序同时运行,请将 &&s 替换为单个 &