Saya menulis skrip bash untuk menggunakan rsync dan memperbarui file di sekitar 20 server yang berbeda.
Saya memiliki bagian rsync yang tahu. Apa yang saya mengalami masalah adalah melalui daftar variabel.
Skrip saya sejauh ini terlihat seperti ini:
#!/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
Di mana [Server IP Address]
seharusnya nilai dari variabel terkait. Jadi ketika saya = 1 saya harus mengulangi nilai $ SERVER1.
Saya sudah mencoba beberapa iterasi termasuk ini
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
Sudah lama sejak saya menulis sehingga saya tahu saya kehilangan sesuatu. Plus, saya yakin saya mencampur apa yang bisa saya lakukan menggunakan C #, yang telah saya gunakan selama 11 tahun terakhir.
Apakah yang saya coba lakukan bahkan mungkin? Atau haruskah saya meletakkan nilai-nilai ini dalam array dan perulangan melalui array? Saya perlu hal yang sama untuk alamat IP produksi serta nama lokasi.
Ini semua dalam upaya untuk tidak mengulangi blok kode yang akan saya gunakan untuk menyinkronkan file di server jauh.