Цикл, пока grep не найдет текст в файле

Что вам нужно понять, так это то, что -name в 'find' на самом деле является 'basename' Следовательно, чтобы получить фактическое имя файла мы можем запустить вложенный поиск, в котором мы сначала находим каталог с именем «метаданные», а затем ищем любые файлы * .xml в указанном каталоге:

find . -type d -name metadata -exec sh -c '
shift $1;
while case $# in 0 ) break;; esac; do
   find "${1}/." ! -name . -prune -type f -name \*.xml
   shift
done
' 2 1 {} +
2
16.11.2016, 03:28
3 ответа

От grep man page:

EXIT STATUS
   Normally the exit status is 0 if a line is selected, 1 if no lines were
   selected, and 2 if an error occurred.  However, if the -q or --quiet or
   --silent is used and a line is selected, the exit status is 0  even  if
   an error occurred.

Итак, если присутствует строка, статус выхода равен 0. Поскольку в bash 0 истинно (потому что стандартный статус «успешного» выхода программ равен 0), у вас должно быть что-то вроде:

#!/bin/bash

while grep "sunday" file.txt > /dev/null;
do
    sleep 1
    echo "working..."
done

Почему именно вы передаете спящий режим 1 на эхо ? Хотя это работает, в этом нет особого смысла. Если вы хотите, чтобы они были встроены, вы можете просто написать sleep 1; echo "работает ..." , и если вы хотите, чтобы echo запускалось до задержки, вы можете запустить его до вызова sleep , как echo ", работающего. .. "; сон 1 .

17
27.01.2020, 21:49

Это должно сработать:

#!/bin/bash
while true ; do 
  echo "Working..."
  result=$(grep -nE 'sunday' file.txt) # -n shows line number
  echo "DEBUG: Result found is $result"
  if [ -z "$result" ] ; then
    echo "COMPLETE!"
    break
  fi
  sleep 1
done
1
27.01.2020, 21:49

У меня работает следующее, я не знаю, почему цикл while не работает

until echo "$(kubectl -n production get pods -l=app='activemq' -o jsonpath='{.items[*].status.containerStatuses[0].ready}')" | grep -q "true"; do
   sleep 10
   echo "Waiting for Broker to be ready......................."
done
1
30.10.2020, 20:28

Теги

Похожие вопросы