Команда, которая передает свой вход для вывода AND, выполняет команду?

Я пытаюсь использовать программу quote чтобы создать небольшой скрипт оболочки, который будет обновлять цены акций каждую секунду. quote должна иметь доступ к Интернету и поэтому имеет небольшую задержку при ее запуске. Я должен очищать экран каждый раз, но я хочу очистить после завершения quote и до того, как cat распечатает свой вывод, поэтому между clear и cat не происходит значительной задержки:

 while true do quote spy gld aapl amzn goog nflx tsla f gm msft | ??? clear | cat sleep 1 done 

Я хочу ??? команда (которая запускается после того, как quote напечатала свой вывод, конечно), чтобы выполнить clear затем передать вывод из quote прямо на вход для cat . Какая команда это делает?

  • Как перенаправить вывод программы в ZIP-файл?
  • Как удалить первые n строк и последнюю строку файла с помощью команд оболочки?
  • Прочитайте файлы из каталога и упорядочите их в соответствующих папках
  • Выход Grepping strace становится тяжелым
  • Заменить файл тогда и только тогда, когда stdin отличается от содержимого файла
  • «Тар» - результат поиска, сохраняющий структуру каталогов
  • Неблокирующий буферный именованный канал?
  • Вывод экрана в столбцы, чтобы использовать ширину экрана и избежать прокрутки
  • 3 Solutions collect form web for “Команда, которая передает свой вход для вывода AND, выполняет команду?”

    Я хочу очистить после завершения цитаты и до того, как кошка распечатает свой результат

    Итак, что вы ищете, на самом деле не работает, а затем cat (что было бы легко: quote … | { clear; cat; } ), потому что cat все равно начнет печатать до завершения quote . Труба не решит вашу проблему, поскольку она запускает производителя и потребителя параллельно. Вместо этого вам нужно сохранить вывод quote , а затем отобразить его. Сохраните вывод подстановки команды в переменную.

     text=$(quote spy gld aapl amzn goog nflx tsla f gm msft) clear echo "$text" 

    Это удаляет пустые строки в конце вывода. Если это неприемлемо, вы можете обойти эту функцию, распечатав лишнюю непустую строку в конце и отключив ее. Команда echo также искажает несколько коротких строк, которые начинаются с - .

     text=$(quote spy gld aapl amzn goog nflx tsla f gm msft; echo .) clear printf %s "${text%.}" 

    Grats, чтобы заставить его работать, но похоже, что вы повторно изобретаете «часы».

    Кроме того, запрос с интервалом в одну секунду может быть немного чрезмерным? Я бы выбрал 20 секунд и более, особенно когда «смотреть» может показать вам различия между прогонами.

     watch -n 20 -d quote spy gld aapl amzn goog nflx tsla f gm msft 

    Это не совсем то, что я спросил, но он выполняет свою работу. Я устанавливаю переменную на вывод quote . Я не думал об этом сначала, потому что я новичок в Bash …

     clear while true do OUTPUT="$(quote spy gld aapl amzn goog nflx tsla f gm msft)" clear echo "${OUTPUT}" sleep 1 done 
    Interesting Posts

    назначить вывод программы ac переменной оболочки: ошибка токена

    Как запустить различные алгоритмы управления перегрузками в FEDORA 17 ..?

    Как мне сделать меньше STOP измельчения длинных строк по умолчанию?

    Попытка включить EPEL в Centos 6, и она не будет отображаться в repolist

    Перемещение согласованной строки над другой совпадающей строкой с помощью sed

    Смонтирован ли roxterm из Debian 9 (растяжка)?

    Записать wget link-rewrite обо всех загруженных файлах

    Перенос синтаксиса даты Linux на FreeBSD

    Есть ли способ установить и удалить пакеты в одной команде yum?

    У меня есть файл, который я не могу удалить после того, как файл mv был прерван

    Способ хранения / запоминания команд одного лайнера

    При использовании zsh tab-completion игнорируйте CDPATH, если локальный файл или каталог совпадают

    fb hw conflict: nouveau vs VESA VGA

    Как установить xscreensaver для использования пустого режима без GUI?

    Цепная труба | с &&

    Linux и Unix - лучшая ОС в мире.