LINUX.ORG.RU

grep non 0 если ничего не найдено

 ,


0

1

Привет. Есть такая конструкция:


curl localhost:8272 | grep -i «data»


Нужно завершать выполнение этого поиска с ошибкой, если не найдено ни одной строчки, ежели найдено то продолжать дальше. нужна однострочная команда реализована стандартным софтом Ubuntu


grep и так возвращает не-0, если не найдено, поэтому вопрос надо бы уточнить:

$ echo bar | grep -q bar; echo $?
0
$ echo foo | grep -q bar; echo $?
1
xtouqh
()
Ответ на: комментарий от xtouqh

это часть скрипта, при его выполнении если не найдено ни одной строчки башу должен отправляться non-zero exit

VA_PLE
() автор топика
Ответ на: комментарий от anonymous

ничего не работает. с exit выбрасывает при любом раскладе, echo fail это вообще фигня, это успешная команда и баш фигачит дальше в любом случае

VA_PLE
() автор топика
Ответ на: комментарий от VA_PLE

curl localhost:8272 | grep -i «data» && echo 5

если ни один строка не найдено то && echo 5, или любая другая команда дальше не должна выполняться, надеюсь так более понятно

VA_PLE
() автор топика
Ответ на: комментарий от VA_PLE
if [ $(curl -s localhost:8272 | grep -iq data) ]; then ; else; fi;
anonymous
()
Ответ на: комментарий от VA_PLE

Врешь же. Exit отработает только если греп ничего не найдет

anonymous
()
Ответ на: комментарий от anonymous

извиняюсь, просто устал с этим фигней, ничего не работает

if [ $(curl -s localhost:8272 | grep -iq data) ]; then ; else; fi; не работает

VA_PLE
() автор топика
Ответ на: комментарий от VA_PLE

не работает

Ну ты echo то должен был сам додумать:

if [ $(curl -s localhost:8272 | grep -iq data) ]; then echo "True"; else echo "False"; fi; echo "End"
anonymous
()
Ответ на: комментарий от anonymous

проблема в том что вместо echo идет куча команд, баш должен останавливать выполнение скрипта усли строк не найдено, мне кажется меня не совсем понимаете

curl -s google.com | grep -iq «google» && любая команда далее выполняется

curl -s google.com | grep -iq «yandex» && любая команда далее НЕвыполняется, оболочка останавливает выполнение скрипта

VA_PLE
() автор топика
Ответ на: комментарий от VA_PLE
[ "x$(curl -s google.com | grep -iq 'google')" != "x" ] && любая команда далее выполняется]
[ "x$(curl -s google.com | grep -iq 'yandex')" = "x" ] && любая команда далее выполняется] && exit
anonymous
()
Ответ на: комментарий от wandrien

Чё за бред?

Ну ТС же не знает, что так делать не надо. Пускай узнает.

anonymous
()

нужна однострочная команда

Ничерта непонятно.

Если это часть sh-скрипта, то:

(curl localhost:8272 | grep -q -i "data") || exit 1

Если же вывод grep надо использовать дальше, то однострочником тут не обойтись.

wandrien ★★★
()
Ответ на: комментарий от VA_PLE

но вы тестируете то что бросаете?

Нет, конечно! Ты же тестируешь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.