Я использую netcat для проверки того, находится ли удаленный сервер exchange (назовем его exchange1) в сети с помощью этого кода.
nc -w 3 192.168.130.17 25
Я хочу создать файл с именем этого сервера, если и только если сканирование netcat получит ответ '220 SMTP Server Ready', что означает, что exchange1 находится в сети. Если ответа нет, я не хочу записывать имя в файл, потому что он не в сети.
Вы можете использовать grep
для проверки соответствия вывода некоторой команды шаблону, передавая вывод другой команды в grep
. Вы используете grep
внутри блока if
.
Очевидный глупый пример (и весь мир называет его "пятницей", верно?):
if date +%A | grep -q 'Friday'; then # -q tells grep not to echo the matched text
throw_a_party
else
echo "Nope, sorry, not time yet."
fi
Соответствующие разделы руководства Bash включают "Конвейеры" и "Составные команды".