Попытка добавить каталог с различными скриптами в мой PATH, но он не запускает скрипт при вызове из-за пределов каталога

Изman bash:

The shell waits for all commands in the pipeline to terminate before returning a value.

У меня не установлен докер, но, возможно, попробуйте это:

awk '/Listening on / {print $3; exit 0;}' <( sudo docker logs -f <id> )

Или вы можете попробовать это:

sudo docker logs -f <id> | (awk '/Listening on / {print $3; exit 0;}'; pkill -P $$ )

Так что, возможно, объяснение того, что происходит, поможет. Я предполагаю, что команда «docker logs» обычно не выходит из (после -f ==? ).

Первоначальная проблема возникает из-за того, что конвейер не завершается после завершения работы awk -это происходит потому, что конвейер все еще находится в ожидании в программе docker (см. мой отрывок из справочной страницы bash выше ).

pkill просто убивает все, что имеет родительский идентификатор $$ -т.е. в этот момент это просто докер.

Очевидно, было бы не очень хорошей идеей отбрасывать эту команду в фоновый режим с помощью '&', а затем запускать другие вещи -они также были бы убиты!

0
15.12.2020, 23:46
0 ответов

Теги

Похожие вопросы