Мой сценарий содержит следующие наборы на месте:Проверка возврата Grep код
set -o errexit
set -o pipefail
set -o nounset
Теперь я хотел бы уплотнительное Grep (не СЭД, AWK и т.д.) для буквы А в файле Ь, и добавить результат в файл с:
grep A b >> C
проблема заключается в том, что GREP выходит с RC 1, если нет а не находится в б-файл, который в моем случае это хорошо, поскольку я не вижу, что в качестве вопроса. В этом случае я обернул команду Grep в функции и запуск:
function func_1() {
grep A b >> C
}
if func_1; then
echo "OK"
else
echo "STILL OK"
end
Все прекрасно работает, но вскоре я понял, что это было бы неплохо, чтобы поймать RC = 2 (отказ Grep). Как я могу это сделать?
Отключения что включен не является решением проблемы. Я должен постоянно устанавливать -o errexit –
Тогда вы никогда не сможете защитить себя от ненужного статуса выхода. Не вызывайте grep или diff. –
Я не хочу защищать себя от ненулевого статуса, это не главное. Я хочу знать, как выйти из состояния функции, у которой есть set -o errexit –