Я пытаюсь написать 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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .