Соответствие текста значения ключа оболочки с состоянием выхода и стандартным выводом - PullRequest
0 голосов
/ 11 декабря 2018

Многострочный текст с ключом и значением в каждой строке.В оболочке Linux я хочу найти ключ и проверить, соответствует ли значение тому, что я ожидаю.

  • Если значение совпадает, состояние выхода должно быть нулевым.

  • Если значение не совпадает, состояние выхода должно быть ненулевыми строка с распечатанным ключом.

Мое текущее решение - поиск ключа для grep (в примере bbb ), поиск ожидаемого значения ( 2 или 5 ) с помощью sed и выход со статусом 100, если не найден:

~ printf "aaa: 1\nbbb: 2\nccc: 3" | grep bbb | tee /dev/stdout | sed '/bbb: 2/!{q100};'; echo "exit status: $?"
bbb: 2
bbb: 2
exit status: 0
~ printf "aaa: 1\nbbb: 2\nccc: 3" | grep bbb | tee /dev/stdout | sed '/bbb: 5/!{q100};'; echo "exit status: $?"
bbb: 2
exit status: 100

Решение кажется слишком сложным, и при совпадении выводит строку дважды.Как мне упростить скрипт?

...