Я использую утилиту Boxfuse, а команда convert выполняет некоторую обработку, которая занимает некоторое время и имеет несколько строк вывода в ходе этой обработки.Подождите, пока команда полностью завершится в Bash
Я пытаюсь сохранить последнее слово с самого последнего выхода на переменную. Это работает примерно в половине случаев. Другая половина фактически сохраняет последнее слово одной из предыдущих строк вывода. Мой Баш выглядит так:
BFCONVERT=$(boxfuse convert MyApp:1.3.5)
AMI=${BFCONVERT##* }
echo $AMI
Полный выход из этой команды, по нескольким линиям и через минуту или около того:
Boxfuse client v.1.19.12.1000 Copyright 2016 Boxfuse GmbH. All rights reserved. Account: myname (First Last)
Waiting for AWS to create an AMI for myname/MyApp:1.3.5 in aws-region-1 (this may take up to 50 seconds) ...
AMI created in 02:51.972s in aws-region-1 -> ami-12345678
Иногда мой сценарий повторяет последнее слово из первой или второй линии а не последнее слово. Как заставить его ждать завершения команды?
Звучит так, как будто 'boxfuse' либо записывает часть своего вывода в стандартную ошибку, либо выдает после того, как он разворачивает дочерний процесс, который на самом деле производит вывод. – chepner
Он не делает ни того, ни другого в сценарии выше. –
@AxelFontaine Возможно ли, что команда иногда не возвращает две последние строки? Кажется, что примерно в половине случаев я запускаю его. Я получаю свою фамилию (от первой строки) в качестве последнего слова без дополнительного вывода. –