У меня есть команда, для которой я хочу написать несколько сценариев, но она возвращает ненулевой код завершения для сценария, который меня не волнует. Этот сценарий обнаруживается на основе ответа stdout, поэтому я хочу «исправить» код состояния, чтобы можно было выполнить некоторые сценарии вокруг него.
например,
$ hg evolve
nothing to evolve on current working copy parent
(6 other orphan in the repository, do you want --any or --rev)
$ echo $?
2
Есть ли какой-нибудь удобный способ Я могу обернуть это чистым bash, чтобы изменить код состояния, если стандартный вывод IFF совпадает с некоторым регулярным выражением?
например,
fixstatus '^nothing to evolve\b' -- hg evolve # would return 0 if stdout from hg evolve matches that regex, otherwise returns whatever it would have normally returned
Что-то в этом роде. Я не думаю, что смогу решить это с помощью конвейера, потому что тогда код завершения будет соответствовать этой последней команде.