Регулярные выражения - ваш друг.
if curl http://websiteABC.com | grep -qE '[0-9]*[1-9][0-9]* wrong'
then echo "TestNotSuccesfull"
else echo "TestSuccesfull"
fi
if
может принимать сложную команду в качестве аргумента, и любой ненулевой возврат оценивается как ложный.
grep
может принимать расширенные регулярные выражения, если вы используете -E
, а -q
говорит, что не следует отправлять совпадающие строки в стандартный вывод, а просто возвращает n код выхода, чтобы указать, были ли они найдены.[0-9]+
означает одну или несколько цифр.
Я отредактировал шаблон.Этот не будет ложно сообщать об ошибке на 0 wrong
, но будет попадать на 01 wrong
или 10 wrong
и т. Д.
Опять же, см. Ссылку в начале моего ответа, но - [...]
«класс символов», что означает, что он соответствует ОДНОМУ символу, как любой из тех, что заключены в квадратные скобки.Он может быть разработан с дополнительными метасимволами:
*
означает «ноль или более» предыдущего шаблона, поэтому [0-9]*
будет соответствовать любому количеству последовательных цифр.Это означает, что он будет совпадать с 123454321
, или пустой строкой ... поэтому при проверке на "ab" он будет совпадать в начале, в конце и между буквами.
[0-9]*[1-9][0-9]*
означает "любой"или без цифр "([0-9]*
), за которыми следует любая ненулевая цифра ([1-9]
), за которой следует" любая цифра или нет "([0-9]*
).Это позволяет начинать нули, заканчивая нулями, но не ТОЛЬКО нулями.Если нет хотя бы одной ненулевой цифры, происходит сбой.