簡體   English   中英

在Bash中使用參數循環遍歷列表:如何?

[英]Looping through list with parameters in Bash: how?

這更多是一個理論上的問題,但假設我有一個主要的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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM