Как получить код возврата выполнения команды 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 не найдет строки, код возврата будет подавлен и выполнение продолжится.
<code>set -e pipefail</code> <br/> <br/> <a href="https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425" rel="nofollow">https://gist.github.com/mohanpedala/1e2ff5661761d3...</a>
Похожие вопросы