Я хотел бы изменить заголовок окна терминала во время длительной команды (например: git svn fetch) со значениями, извлеченными из вывода, при этом все еще записывая в стандартный вывод.

Возможно ли это использовать именованные каналы или тройник и xargs?

Я думаю что-то вроде

git svn fetch | sed "s/^\(r\d*\).*$/ \"\\\033]0;\"\1\"\\\007\"/" | xargs -l1 echo -ne

основано на: http://tldp.org/HOWTO/Xterm-Title-3.html


Обновление:

заставить это работать будет достаточно:

(echo "r9" ; echo "r10") | sed "s/^\(r\d*\).*$/ \"\\\033]0;\"\1\"\\\007\"/" | xargs -l1 echo -ne

Обновление 2:

Это почти делает то, что я хочу. Я вижу r10, но не r9:

(echo "r9" ; sleep 1 ; echo "r10") | sed "s/^\(r[0-9]*\)\.*$/\\\033]0;\1\\\007/" | xargs -0 echo -ne

1 ответ1

0

У меня нет полного ответа, но одним из подходов было бы использовать tee для отправки вывода из git в другой скрипт и стандартный вывод. Что-то вроде:

$ git svn fetch | tee grepping-and-prompt-changing-script.sh

Вот несколько примеров:

http://linux.101hacks.com/unix/tee-command-examples/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .