ฉันกำลังเขียนสคริปต์ทุบตีเพื่อใช้ rsync และอัปเดตไฟล์บนเซิร์ฟเวอร์ที่แตกต่างกันประมาณ 20 แห่ง
ฉันมีส่วน rsync ที่คิดออก สิ่งที่ฉันมีปัญหาคือต้องผ่านรายการตัวแปร
สคริปต์ของฉันมีลักษณะเช่นนี้:
#!/bin/bash
SERVER1="192.xxx.xxx.2"
SERVER2="192.xxx.xxx.3"
SERVER3="192.xxx.xxx.4"
SERVER4="192.xxx.xxx.5"
SERVER5="192.xxx.xxx.6"
SERVER6="192.xxx.xxx.7"
for ((i=1; i<7; i++))
do
echo [Server IP Address]
done
[Server IP Address]
ค่าของตัวแปรที่เกี่ยวข้องควรอยู่ที่ไหน ดังนั้นเมื่อ i = 1 ฉันควร echo ค่าของ $ SERVER1
ฉันลองทำซ้ำหลายครั้งรวมถึง
echo "$SERVER$i" # printed the value of i
echo "SERVER$i" # printer "SERVER" plus the value of i ex: SERVER 1 where i = 1
echo $("SERVER$i") # produced an error SERVER1: command not found where i = 1
echo $$SERVER$i # printed a four digit number followed by "SERVER" plus the value of i
echo \$$SERVER$i # printed "$" plus the value of i
เป็นเวลานานแล้วที่ฉันเขียนสคริปต์ดังนั้นฉันจึงรู้ว่าตัวเองขาดอะไรไป รวมทั้งฉันแน่ใจว่าฉันกำลังผสมในสิ่งที่ฉันสามารถทำได้โดยใช้ C # ซึ่งฉันใช้มา 11 ปีแล้ว
เป็นสิ่งที่ฉันพยายามจะทำไปได้แม้กระทั่ง? หรือฉันควรจะใส่ค่าเหล่านี้ในอาร์เรย์และวนลูปผ่านอาร์เรย์? ฉันต้องการสิ่งเดียวกันนี้สำหรับที่อยู่ IP ที่ผลิตรวมถึงชื่อที่ตั้ง
ทั้งหมดนี้เป็นความพยายามที่จะไม่ต้องทำบล็อครหัสซ้ำฉันจะใช้เพื่อซิงค์ไฟล์บนเซิร์ฟเวอร์ระยะไกล