Я нашел то, что кажется хорошим фрагментом кода, предназначенным для вращения постфиксного IP, но я действительно не могу заставить его работать. когда я запускаю его, я получаю эту ошибку:
rotate_postfix_ip.sh: 2: Syntax error: "(" unexpected
Понятия не имею, как это исправить, кто-нибудь может мне помочь, пожалуйста?
#!/bin/bash
ips=("64.250.120.128" "64.250.121.241" "64.250.121.242")
length=${#ips[@]}
pos=`cat current.txt`
oldip=${ips[$pos - 1]}
if [ "$length" -eq "$pos" ] ; then
echo "limit reached"
pos=1
else
echo "increment!"
(( pos++ ))
fi
echo "$pos" > current.txt
newip=${ips[$pos - 1]}
echo "prev: $oldip"
echo "new: $newip"
sed -ie "s/smtp_bind_address=$oldip/smtp_bind_address=$newip/g" /etc/postfix/main.cf > /dev/null
service postfix reload
x@debi:~$ cat test.sh
#!/bin/bash
ips=("1" "2" "3")
x@debi:~$ sh test.sh
test.sh: 2: Syntax error: "(" unexpected
x@debi:~$ bash -xv test.sh
#!/bin/bash
ips=("1" "2" "3")
+ ips=("1" "2" "3")
блин, это не что-то с окончаниями новой строки. Я отредактировал новый файл с помощью vim, и он выдает ту же ошибку.