Я делаю довольно стандартный tail
+ grep
:
tail -f some_log_file.txt | grep -q known-string
Если я запускаю команду без -q
:
tail -f some_log_file.txt | grep known-string
Я вижу вывод:
[Tue Feb 12 11:32:45 2019] known-string.
так что я знаю, что grep совпадает. Однако, когда я добавляю -q
команда grep не завершается, она просто зависает там, ожидая дополнительных выходных данных ... даже несмотря на то, что на странице руководства написано, что она "немедленно завершится с нулевым статусом, если найдено какое-либо совпадение":
-q, --quiet, --silent Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. Also see the -s or --no-messages option.
Может кто-нибудь объяснить, почему -q
не вызывает моего grep для выхода? Я пытаюсь && beep
до конца, чтобы grep
звуковой сигнал, когда найдено совпадение, но если я не смогу выйти из него, это не сработает.