fichier journal généré dynamiquement dans screenrc affiché dans hardstatus

8

Je veux utiliser une combinaison de la date et de l'heure au démarrage comme nom de fichier pour le fichier journal de l'écran GNU. Dans screenrc, si je mets

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

J'obtiens un fichier généré dynamiquement, par exemple

screen_nanna13_06062012_08:03-bash.0

Maintenant, je veux que l'écran affiche ce nom de fichier dans la barre d'état physique. Je ne peux pas utiliser

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

car les espaces réservés sont mis à jour chaque fois que l'heure change.

Les solutions que je peux proposer impliquent un code bash exécuté avant le démarrage de l'écran, mais ce n'est pas bon car les fenêtres d'écran distinctes sont censées obtenir leur propre fichier journal dynamique.

Y a-t-il un mécanisme de substitution de variables dans l'écran?

thias
la source

Réponses:

1

J'ai trouvé une solution en utilisant la backtickcommande de l'écran :

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

utilise la commande UNIX date pour charger la date / heure actuelle dans la variable% 1`. Le seul problème est que la date ne change pas dans le nom du fichier journal au cas où une nouvelle fenêtre serait créée plus tard au cours de la session (mais pour moi, c'est même une fonctionnalité car elle permet une meilleure identification du fichier journal approprié).

thias
la source