Как получить код возврата выполнения команды bash, содержащей grep, вместо кода возврата grep?

Как отредактировать команду, чтобы в случае ошибки первой части вызова весь вызов завершался с этой ошибкой, но если ошибку выдает команда grep (например, код 1, если строки не найдены), то это подавлялось?
  • 19 июня 2024 г. 17:31
Ответы на вопрос 2
Для получения кода возврата выполнения команды bash, содержащей grep, можно использовать переменную $? после выполнения команды. Например:

```bash
grep "pattern" file.txt
return_code=$?
echo "Return code: $return_code"
```

Для того чтобы подавить код возврата grep и завершить выполнение с ошибкой только в случае ошибки первой части вызова, можно добавить параметр || true после вызова grep. Например:

```bash
command || grep "pattern" file.txt || true
```

Таким образом, если команда command завершится с ошибкой, выполнение сразу завершится с этой ошибкой. Если же command выполнится успешно, но grep не найдет строки, код возврата будет подавлен и выполнение продолжится.
Похожие вопросы