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