Настройка скрипта для grep вывода curl

#curl #grep

#curl #grep

Вопрос:

Я настраиваю проверку для поиска нескольких слов в XML-файле, сгенерированном из инструкции CURL, и выдаю предупреждение, если эти слова не найдены.

 curl -m 10 --header "Content-Type: text/xml;charset=UTF-8"  --data @payload.xml http://test.abc.com/services/Games  2>amp;1 | grep -iwn 'Game1|Game2|Game3'
  

Поскольку вывод CURL представляет собой формат XML, я использую stdout и использую grep , чтобы найти 3 разные игры в этом XML. Это распечатывает XML как есть и выделяет игры, для моего предупреждения я хочу сделать следующее: если ни одна из этих игр не найдена в выводе curl, мне нужно отправить уведомление.

Любая помощь будет оценена.

Спасибо, K

Ответ №1:

Используйте код возврата команды:

 $ echo aaa | grep aaa
aaa
$ echo $?
0

$ echo bbb | grep aaa
$ echo $?
1
  

Вы можете расширить свою команду для отправки электронного письма при grep возврате ненулевого кода:

 curl -m 10 --header "Content-Type: text/xml;charset=UTF-8"  
--data @payload.xml http://test.abc.com/services/Games 2>amp;1 
| grep -iwn 'Game1|Game2|Game3' 
|| (echo | mail -s "Game not found" user@domain.com)