6

Когда мне нужно подавить какой-то вывод, например

foo | grep -v bar

Но foo дает иногда только:

bar
bar
bar...

grep вернет -1. Как мне преобразовать код выхода 1 в 0?

2 ответа2

8

Вы всегда можете попробовать пропустить это через что-то еще, например, cat , чтобы избавиться от кода выхода из grep - хотя это может быть большим молотком, чем вы хотите.

1

По крайней мере, в Bash, вы можете использовать

foo || (EC=$?; if [ $EC -ne 1 ]; then exit $EC; fi)

Это изменяет код выхода 1 на 0 и больше ничего не меняет.

(Возможно, не POSIX-совместимая, но, возможно, POSIX-совместимая версия существует.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .