Повторить команду терминала до указанного вывода

Я столкнулся с этой же проблемой с версией Audacity 2.1.2, которая поставляется с Ubuntu. Я установил Audacity 2.2.0 из

https://launchpad.net/~ubuntuhandbook1/+archive/ubuntu/audacity

, и теперь мои наушники снова работают.

1
задан 23 February 2016 в 14:36

2 ответа

Как говорит Джейкоб, используйте условие в цикле. Я предлагаю цикл until:

dropbox stop && dropbox start && 
until dropbox status | grep -q "Up to date";
do 
  sleep 1; 
done

until запускается до тех пор, пока команда не вернет true, это когда вывод dropbox status содержит Up to date.

4
ответ дан 23 May 2018 в 13:20
  • 1
    Спасибо, муру! Использование команды «до» в сочетании с «grep» очень информативно. Я уверен, что это пригодится для других вещей. Пока я выбрал первое решение Джейкоба, поскольку мне нравится явный статус, который он предоставляет. – Rasmus 24 February 2016 в 15:09
  • 2
    @Rasmus уверен. :) Просто примечание: вы можете использовать тот же тест [ "$(dropbox status)" != "Up to date" ] с until - просто замените != на =. По существу until - while с участием. – muru 24 February 2016 в 15:11
  • 3
    Еще раз спасибо! Я просто изменил ситуацию, чтобы попробовать. Я хлопаю в ладоши - это очень интересный способ узнать все! – Rasmus 24 February 2016 в 15:15

Определите его как функцию в вашем $HOME/.bashrc

syncDropBox()
{
dropbox stop && \
dropbox start && 
while true; 
do 
  STAT="$(dropbox status)"
  if [ "$STAT" = "Up to date"  ] ; then
  break # or add more commands to finilize the process
  fi
  sleep 1; 
done
}

Теперь у меня нет приложения dropbox cmd, поэтому в зависимости от способа вывода статуса вы можете или не можете обработайте его с помощью AWK или grep.

Но если вы хотите сохранить вывод в значение или перенаправить вывод в другую команду и оценить их. Как только мы получим конкретную строку вывода - break

1
ответ дан 23 May 2018 в 13:20
  • 1
    Спасибо, Серж. Это интересная альтернатива определению псевдонима, и это работает как шарм. – Rasmus 24 February 2016 в 15:11

Другие вопросы по тегам:

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