Требуется помощь - в контексте сценариев оболочки на bash GNU / LINUX:
Я всегда использую set -e. Часто я хотел бы grepи не всегда хочу, чтобы скрипт прекращал выполнение, если grepимеет состояние выхода, 1указывающее, что шаблон не найден.
Я попытался решить эту проблему следующим образом:
(Попробуйте I)
Если set +o pipefailи вызову grep с чем-то вроде grep 'p' | wc -lэтого, я получу желаемое поведение, пока не включит будущий сопровождающий pipefail. Кроме того, мне нравится включать, pipefailтак что это не работает для меня.
(Попробуйте II)
Используйте a sedили awkи только печатать строки, соответствующие шаблону, затем wcсовпадают линии, чтобы проверить на соответствие шаблону. Мне не нравится эта опция, потому что использование sedto grepкажется обходным решением для моей настоящей проблемы.
(Попробуйте III)
Это мой наименее любимый - что-то вроде:set +e; grep 'p'; set-e
Любое понимание / идиомы будут наиболее цениться - спасибо.