Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Was ist tput?

8 views
Skip to first unread message

Jakob Schürz

unread,
May 11, 2013, 11:37:32 AM5/11/13
to
Beim Start von Fvwm erhalte ich in .xsession-errors mehrfach folgende
Meldung:

tput: No value for $TERM and no -T specified

Ich habe herausgefunden, dass tput mit einer Terminal-Initialisierung zu
tun hat. Nur hab ich keine Ahnung, welcher Aufruf in meiner fvwm-config
bzw. bashrc dies auslᅵsen kᅵnnte...

Hat jemand Ideen?


lg jakob
--
"Die Zuweisung erfolgt mit hoher Prioritᅵt und schlᅵft nicht. Dies ist
die Flagge, um Einsatz in Interrupt-Handler, unten Hᅵlften und andere
Situationen, in denen Sie kann nicht schlafen."
(aus http://de.how-to.mobi/index.php?id=116343)
http://xundeenergie.wordpress.com
werts...@nurfuerspam.de

Thomas 'PointedEars' Lahn

unread,
May 12, 2013, 5:17:49 AM5/12/13
to
Jakob Schürz wrote:

> Beim Start von Fvwm erhalte ich in .xsession-errors mehrfach folgende
> Meldung:
>
> tput: No value for $TERM and no -T specified
>
> Ich habe herausgefunden, dass tput mit einer Terminal-Initialisierung zu
> tun hat. Nur hab ich keine Ahnung, welcher Aufruf in meiner fvwm-config
> bzw. bashrc dies auslösen könnte...
>
> Hat jemand Ideen?

RTFM, STFW.

tput(1) aus dem Paket ncurses(-bin) hat insofern mit Terminal-
Initialisierung zu tun, als dass man damit ANSI-Escape-Sequenzen [1]
generieren kann, die zum jeweiligen Terminal passen.

Zum Beispiel kann man mit

tput bold

die ANSI-Escape-Sequenz ausgeben, damit bei passendem Terminal nachfolgender
Text „fett“ erscheint (in Anführungszeichen, weil die tatsächliche
Darstellung terminalspezifisch ist – kann auch unterstrichen oder farbig
sein). Hier (TERM=xterm bzw. TERM=screen) ist das

$ tput bold | od -tax1
0000000 esc [ 1 m
1b 5b 31 6d
0000004

In meinen Scripts verwende ich daher u. a.

bold=$(tput bold 2>/dev/null)
norm=$(tput sgr0 2>/dev/null)

printf '%s' "um gezielt ${bold}Fettschrift${norm} zu generieren"

Welches Terminal man benutzt, d. h. welche ANSI-Escapes bei dem jeweiligen
Terminal für eine brauchbare Ausgabe verwendet werden müssen, wird durch die
Umgebungsvariable „TERM“ angegeben, oder kann bei „tput“ mit der Option „-T“
angegeben werden. Aus der terminfo-Datenbank (${HOME}/.terminfo,
/etc/terminfo, /lib/terminfo oder /usr/share/terminfo; in dieser
Reihenfolge) wird dann die zum Terminal passende Escape-Sequenz ausgelesen.
Obige Codesequenz findet sich hier beispielsweise in
/usr/share/terminfo/l/linux-vt bei Adresse 00000400h, wie hexedit(1) zeigt.

Dein Debian(?) GNU/Linux bzw. Deine Terminal-Applikation ist nicht richtig
konfiguriert, wenn "$TERM" bei Dir die Länge 0 hat. Zu den üblichen Werten
gehören „linux“, „screen“ und „xterm“. Du solltest das Paket terminfo
(siehe dann auch terminfo(5)) installiert haben.

Der Aufruf, der die Fehlermeldung verursacht, ist einer von „tput“ selbst
(sieht man am Präfix). Es wird also wahrscheinlich in einem Skript
aufgerufen, welches beim Start von fvwm aufgerufen wird. Dieses sollte in
der fvwm-Manpage dokumentiert sein. Zur Not könntest Du eine Textsuche mit
ack(1) oder GNU grep(1) in den jeweiligen Verzeichnissen machen, angefangen
mit Deinem Home-Verzeichnis.

Das herauszufinden oder dort Änderungen vorzunehmen (ich rate von Letzterem
ab) löst aber das Problem nicht, denn am Aufruf von „tput“ ist nichts
Fchsales – der Variablenwert muss stattdessen repariert werden.

_______
[1] <http://de.wikipedia.org/wiki/Escape-Sequenz>
--
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Thomas 'PointedEars' Lahn

unread,
May 12, 2013, 5:28:46 AM5/12/13
to
Thomas 'PointedEars' Lahn wrote:

> Dein Debian(?) GNU/Linux bzw. Deine Terminal-Applikation ist nicht richtig
> konfiguriert, wenn "$TERM" bei Dir die Länge 0 hat. Zu den üblichen
> Werten gehören „linux“, „screen“ und „xterm“. Du solltest das Paket
> terminfo (siehe dann auch terminfo(5)) installiert haben.

Korrektur: Bei Debian befindet sich die terminfo-Datenbank in den Paketen
ncurses-bin (Basis) und ncurses-term (Extras).

# dpkg -S /usr/share/terminfo/
ncurses-bin, ncurses-term: /usr/share/terminfo

Luka Ćavara

unread,
May 12, 2013, 7:35:33 AM5/12/13
to
On 05/11/2013 05:37 PM, Jakob Schürz schrieb:

<...>

Mit 'tput' kann man viele interessante Dinge machen, allerdings nicht
immer sichtbar nützliche wie z.B. eine "glxgears" Simulation ;)

clear;while true; do for ((a=1; a <= $(tput cols); a++)); do tput cup 0
$a;done;for ((b=1; b <= $(tput lines); b++)); do tput cup $b $(tput
cols);done; for ((c=$(tput cols); c>=1; c--)); do tput cup $(tput lines)
$c;done;for ((d=$(tput lines); d>=1; d--)); do tput cup $d 0;done;done

(versuche verkleinern oder vergrößern das Fenster während der Ausführung)

--
ɹɥ˙ʇǝuʇɥ˙ƃz@ɐɹɐʌɐɔ˙ɐʞnן

Werner Flamme

unread,
May 14, 2013, 7:16:23 AM5/14/13
to
Jakob Schᅵrz [11.05.2013 17:37]:
> Beim Start von Fvwm erhalte ich in .xsession-errors mehrfach folgende
> Meldung:
>
> tput: No value for $TERM and no -T specified
>
> Ich habe herausgefunden, dass tput mit einer Terminal-Initialisierung zu
> tun hat. Nur hab ich keine Ahnung, welcher Aufruf in meiner fvwm-config
> bzw. bashrc dies auslᅵsen kᅵnnte...
>
> Hat jemand Ideen?

Meine erste Idee ist immer: hat das Ding eine man-page? Und bei "man
tput" kommt wirklich was :-)

Sonst kᅵnnte auch "apropos tput" helfen, aber da hier auch "output"
matcht, wird die Liste etwas lᅵnglich ;-)

HDH, Werner

--

Michael Meyer

unread,
May 14, 2013, 10:13:29 AM5/14/13
to
*** Werner Flamme wrote:

> Sonst k�nnte auch "apropos tput" helfen, aber da hier auch "output"
> matcht, wird die Liste etwas l�nglich ;-)

apropos ^tput$
apropos -e tput

Micha

Peter Blancke

unread,
May 14, 2013, 10:45:45 AM5/14/13
to
Am 2013-05-14, Michael Meyer <mi...@gmx.de> schrieb:
> *** Werner Flamme wrote:

>> Sonst könnte auch "apropos tput" helfen, aber da hier auch
>> "output" matcht, wird die Liste etwas länglich ;-)
>
> apropos ^tput$
> apropos -e tput

Auch gerne in kurz: "whatis tput"

Grusz,

Peter Blancke

--
Hoc est enim verbum meum!

Helmut Hullen

unread,
May 14, 2013, 10:31:00 AM5/14/13
to
Hallo, Werner,

Du meintest am 14.05.13:

> Meine erste Idee ist immer: hat das Ding eine man-page? Und bei "man
> tput" kommt wirklich was :-)

> Sonst k�nnte auch "apropos tput" helfen, aber da hier auch "output"
> matcht, wird die Liste etwas l�nglich ;-)

apropos tput | grep -v -i output

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

0 new messages