LinuxForum.Fans
Тема

Скрипт для сравнения

Автор: bormotolog 3 сообщений 929 просмотров
#211354

Доброго времени суток всем!
Посоветуйте чайнику, как побороть написание скрипта на bash. Задача стоит следующая: проверить соответствие доменного имени определённому ip-адресу, и, в случае несоответствия, отправить депешу на мыло админу. В качестве команды для разрешения имени была выбрана команда host, а в качестве примера доменного имени - rambler.ru . В итоге наваялся следующий скрипт:

text

#!/bin/bash
STRING1=$(host -t a rambler.ru 8.8.8.8 | grep address)
STRING2='rambler.ru has address 81.19.70.3'
# echo $STRING1
if [$STRING1=$STRING2]; then
    echo It is OK.
else
    echo Send e-mail.
fi

С отправкой e-mail решил пока не заморачиваться. Результат работы скрипта выглядит следующим образом:

./test.sh: line 5: [rambler.ru: команда не найдена
Send e-mail.

Как я понимаю, bash воспринимает содержимое одной (или обеих) переменных как некие команды, и, соответственно, пытается их выполнить.
В связи с этим возник вопрос: как заставить bash сравнить содержимое двух переменных? oO
Заранее спасибо!

#211358
bormotolog написал:
if [$STRING1=$STRING2]; then

после и перед квадратными скобками нужен пробел... перед и после равно тоже. переменные лучше квотить всегда, когда это не оставлены без кавычек намеренно (в данном случае - обязательно).

#211365

Fat-Zer:
Помогло. Агромадное спасибо! :D

Войдите или зарегистрируйтесь, чтобы ответить.