Я пытаюсь написать скрипт bash для своего сервера. Этот скрипт запускает curl, чтобы получить последний IP-адрес моего ящика, а затем отправляет мне письмо, если он отличается от старого IP-адреса, сохраненного в файле.
Вот что у меня сейчас:
#!/bin/bash
#if ip address changes do
x=$(curl -4 "icanhazip.com")
y=$(cat ./oldIP.txt )
if [ "$x"!="$y" ];
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
elif [ "$x"="$y"]
then
echo "The IP addresses are the same"
fi
#send email to me
Я тоже пробовал использовать, if; then; else;
однако мне не удаётся заставить скрипт реагировать по-разному, когда IP-адреса одинаковые.
Я полагаю, что проблема возникла из-за моего объявления переменной для $y
.
решение1
Между операндами в тестовых скобках [ ] необходимо оставлять пробелы.
#!/bin/bash
#if ip address changes do
x=$(curl -4 icanhazip.com )
y=$(cat ./oldIP.txt )
if [ "$x" != "$y" ]
then
echo "Current IP Address is $x"
echo "Previous IP address is $y"
# y=$x
else
echo "The IP addresses are the same"
fi
#send email to me