Terminaltitel von Standardausgabe eines Befehls mit langer Laufzeit aktualisieren?

503
Sam Hasler

Ich möchte den Titel eines Terminalfensters während eines langen Befehls (z. B . git svn fetch:) ändern, wobei die Werte aus der Ausgabe übernommen werden, während noch in die Standardausgabe geschrieben wird.

Ist dies mit Named Pipes oder Tee und Xargs möglich?

Ich denke so etwas wie

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

basierend auf: http://tldp.org/HOWTO/Xterm-Title-3.html


Update :

Dies zu erreichen, reicht aus:

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

Update 2:

Das macht fast was ich will. Ich sehe r10, aber nicht r9:

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

1 Antwort auf die Frage

0
Peter Jenkins

Ich habe keine vollständige Antwort, aber eine Möglichkeit wäre tee, die Ausgabe von git an ein anderes Skript UND eine Standardausgabe zu senden. So etwas wie:

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

Hier sind einige Beispiele:

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