Uhrzeit im Terminal

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Uhrzeit im Terminal

Beitrag von Meillo » 12.08.2023 16:51:03

Leider kenn ich mich mit den Feinheiten der Terminalsteuerung nicht gut genug aus. Ich habe keine Ahnung inwiefern andere Input-FDs einen Unterschied machen.

Was ich an deinem Code nicht nachvollziehen kann: Du leitest den FD 3 auf das Terminal-Device um. Danach nutzt du aber FD 3 gar nicht, sondern schreibst die Ausgabe direkt explizit auf's Terminal-Device. Da kannst du die beiden `exec' und das `trap' doch weglassen.

Unwissend wie ich auf diesem Detaillevel bin, wuerde ich behaupten, dass es keinen Unterschied macht, auf welchem Kanal Input ins Terminal kommt, aber da du diese Umleitungen baust werden sie wohl schon einen Effekt haben. Ich lerne diesbezueglich gerne dazu. Wenn jemand Doku hat, die diese Dinge erklaert, dann verweist mich gerne darauf.

Livingston hat geschrieben: ↑ zum Beitrag ↑
12.08.2023 15:52:28
Zu Meillos Problem:
Kann sein, dass die BSDs tput nicht richtig verstehen. tput spricht die Strukturen an, die in (n)curses und termios definiert sind und unter Linux immer vorhanden sind. Kann sein, dass BSD/Unixe/xxx auf andere Terminalstrukturen/-definitionen zurückgreifen. Da gibt's möglicherweise Ersatz.
Das ist schon gewagt, den BSDs, die das Terminalhanding erfunden haben, abzusprechen, dass sie es verstehen wuerden. :-D Mutig, mutig! 8)

Ich wuerde eher sagen, dass vielleicht die termcap/terminfo fuer rxvt abweicht oder auf BSD etwas andere tput-Befehle genutzt werden muessen. Generell muss das gleiche moeglich sein, denn sonst koennte curses (das auch auf BSD erfunden worden ist) nicht funktionieren.

In meiner Erfahrung funktionieren die Dinge unter Linux eher in der Weise wie ein unwissender User sie erwarten wuerde und unter BSD sind sie eher technisch stimmig zu dem wie die unterliegenden Strukturen sind, man braucht also mehr technisches Hintergrundwissen, um zu verstehen, warum die Dinge so sind wie sie sind. Auch gibt es bei BSD viel mehr Altlasten.

Eigentlich ist so eine Situation, in der wir hier gerade sind, die ideale Grundlage, um in das Thema einzutauchen, zu recherchieren und nachzulesen, um dadurch wirklich zu verstehen, warum die Dinge so sind wie sie sind. Gerade beim Thema Terminal habe ich noch einige Wissensluecken, die mich schon lange stoeren ... Mal sehen, ob ich die Zeit und Lust finde, einzutauchen ...
Use ed once in a while!

rjh

Re: Uhrzeit im Terminal

Beitrag von rjh » 12.08.2023 17:10:25

Hab es eben auf FreeBSD mit xfce-terminal und xterm ausprobiert. Nein, geht nicht (erscheint immer direkt am Prompt bzw. bildet unentwegt neue Zeilen). Keine Ahnung, warum tput da anders interpretiert wird.

Benutzeravatar
Livingston
Beiträge: 1461
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Uhrzeit im Terminal

Beitrag von Livingston » 12.08.2023 17:23:29

Meillo hat geschrieben: ↑ zum Beitrag ↑
12.08.2023 16:51:03
Das ist schon gewagt, den BSDs, die das Terminalhanding erfunden haben, abzusprechen, dass sie es verstehen wuerden. :-D Mutig, mutig! 8)
Vielleicht sollte man es umgekehrt formulieren und sagen, Linux geht da anders ran.
Interessant wäre mal, die verschiedenen Möglichkeiten, die termio/termios/terminfo und Co. liefern, zu vergleichen.
Ich werde wohl mal in einer ruhigen Minute eine BSD-VM aufziehen und mich dranmachen...
... aber nicht an diesem Wochenende 8)
Was ich an deinem Code nicht nachvollziehen kann: Du leitest den FD 3 auf das Terminal-Device um. Danach nutzt du aber FD 3 gar nicht, sondern schreibst die Ausgabe direkt explizit auf's Terminal-Device. Da kannst du die beiden `exec' und das `trap' doch weglassen.
Ich schreibe durchaus ins Terminal, und war in dessen Descriptor Nummero Tres, den ich vorher mit exec 3>$TTY (also z.B. exec 3>/dev/pts/1) geöffnet habe. Vielleicht bin ich ja komplett auf dem Holzweg, aber wie sonst sollte ich per exec einen neuen FD auf einem Gerät öffnen (mit der Bash wohlgemerkt)?

Au manno. Jo, da muss ">&3" und nicht ">$TTY" hin. (Useless use of variables) :oops:

Abgesehen davon ist das - wie Du oben schon sagtest - ohnehin übertrieben. Es bräuchte schon eines mutithreadingfähigen Terminals, das die verschiedenen Filedeskriptoren unabhängig voneinander werkeln lässt. Gibt es sowas vielleicht schon?

NACHTRAG:
In meiner Erfahrung funktionieren die Dinge unter Linux eher in der Weise wie ein unwissender User sie erwarten wuerde und unter BSD sind sie eher technisch stimmig zu dem wie die unterliegenden Strukturen sind, man braucht also mehr technisches Hintergrundwissen, um zu verstehen, warum die Dinge so sind wie sie sind. Auch gibt es bei BSD viel mehr Altlasten.
Muss in BSD vlt. noch ein tput init vorne dran, damit die korrekte terminfo-Struktur geladen wird? Hab leider hier gerade kein BSD zur Hand.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Antworten