EDIT:
Мой первоначальный ответ предполагал, что «некоторая строка» означает «любая строка». Если вам нужно найти конкретный вариант, Perl, вероятно, ваш лучший вариант, так как почти ничего не может сравниться с Perl, когда дело доходит до соответствия REGEX.
Однако, если вы не можете использовать Perl по какой-либо причине (вы можете ожидать, что Perl присутствует в большинстве дистрибутивов Linux, но никто не заставляет пользователя устанавливать его, хотя Perl может быть недоступен), вы можете сделать это с помощью помощь grep. Однако некоторые из решений grep, которые я видел до сих пор, являются неоптимальными (они работают медленнее, чем необходимо). В этом случае я бы предпочел сделать следующее:
MATCH=''; while [[ "e$MATCH" == "e" ]]; do MATCH=`COMMAND | grep "SOME_STRING"`; done; echo $MATCH
Замените COMMAND на фактическую команду для запуска и SOME_STRING на строку для поиска. Если SOME_STRING найден в выходных данных COMMAND, цикл остановится и напечатает выходные данные, где был найден SOME_STRING.
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Возможно, не лучшее решение (я не очень хороший программист Bash), но оно будет работать: -P
RUN=''; while [[ "e$RUN" == "e" ]]; do RUN=`XXXX`; done ; echo $RUN
Просто замените XXXX на ваш командный вызов, например попробуйте использовать " echo ", и он никогда не вернется (поскольку echo никогда ничего не печатает на стандартный вывод), однако, если вы используете " echo test ", он сразу прекратит работу и, наконец, выведет тест .