Dynamisch generierte Protokolldatei in screenrc, angezeigt in hardstatus

8

Ich möchte eine Kombination aus Datum und Uhrzeit beim Start als Dateinamen für die Protokolldatei des GNU-Bildschirms verwenden. In screenrc, wenn ich setze

logfile '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

Ich bekomme eine dynamisch generierte Datei, z

screen_nanna13_06062012_08:03-bash.0

Jetzt möchte ich, dass der Bildschirm diesen Dateinamen in der Hardstatusleiste anzeigt. Ich kann nicht benutzen

hardstatus string '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

weil die Platzhalter aktualisiert werden, wenn sich die Zeit ändert.

Die Lösungen, die ich finden kann, beinhalten einen Bash-Code, der vor dem Start des Bildschirms ausgeführt wird, aber das ist nicht gut, da die separaten Bildschirmfenster ihre eigene dynamische Protokolldatei erhalten sollen.

Gibt es einen Variablensubstitutionsmechanismus im Bildschirm?

thias
quelle

Antworten:

1

Ich habe mit dem backtickBefehl screen eine Lösung gefunden :

backtick 1 0 0 date +%d%b%Y_%k:%M
logfile '~/log/%H_%1`-%t.%n'
hardstatus string '~/log/%H_%1`-%t.%n'

verwendet den UNIX-Datumsbefehl, um das aktuelle Datum / die aktuelle Uhrzeit in die Variable% 1` zu laden. Das einzige Problem ist, dass sich das Datum im Namen der Protokolldatei nicht ändert, falls später während der Sitzung ein neues Fenster erstellt wird (für mich ist dies jedoch sogar eine Funktion, da dadurch die entsprechende Protokolldatei besser identifiziert werden kann).

thias
quelle