用bash中的参数在列表中循环:如何



这更像是一个理论问题,但假设我有一个主Rsync脚本,我想用来将多个远程主机备份到同一目标。

我想让脚本读取一个文本文件,其中包含主机名,源,目的地的每行,沿此目的:

host-one.example.com /Volumes/data /Volumes/host-one-backup
host-two.example.com /Volumes/Users /Volumes/host-two-backup
host-three.example.com /Volume/apps /Volumes/host-three-backup

然后,一个简单的rsync脚本将相应地弹出三个值中的每个值,运行该rsync作业,然后在循环脚本中转到下一个等。

除了如何将三个值读为脚本中的变量外,我都很好。

中的变量。

最感谢您的想法或建议!

欢呼,丹

while read hostname source destination; do
    rsync -a "$hostname:$source" "$destination"
done < backup-list.txt

很酷/棘手的部分是将整个循环视为复合命令,并将重定向应用于它。这会导致每个read调用以读取文件的线路,因为stdin在循环的持续时间内重定向。

相关内容

  • 没有找到相关文章

最新更新