Piszę skrypt bash, aby używać rsync i aktualizować pliki na około 20 różnych serwerach.
Rozpracowałem część rsync. Mam problem z przeglądaniem listy zmiennych.
Mój skrypt do tej pory wygląda następująco:
#!/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
Gdzie [Server IP Address]
powinna być wartość powiązanej zmiennej. Więc kiedy i = 1 powinienem powtórzyć wartość $ SERVER1.
Próbowałem kilka iteracji w tym
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
Minęło dużo czasu, odkąd napisałem scenariusz, więc wiem, że czegoś mi brakuje. Poza tym jestem pewien, że mieszam to, co mogę zrobić, używając C #, którego używałem przez ostatnie 11 lat.
Czy to, co próbuję zrobić, jest w ogóle możliwe? Czy powinienem umieszczać te wartości w tablicy i zapętlać tablicę? Potrzebuję tego samego do produkcji adresów IP, a także nazw lokalizacji.
Wszystko po to, aby nie musieć powtarzać bloku kodu, którego użyję do synchronizacji plików na zdalnym serwerze.