Utilizzo delle variabili d'ambiente nei comandi della shell della barra di stato di Tmux


10

Sto tentando di creare un tmux barra di stato che mostra tre fusi orari: US Eastern Time :: UTC :: Central European Time. L'uso della TZvariabile d'ambiente fa sì che il datecomando mostri l'ora in un determinato fuso orario.

Stavo tentando di farlo con questa impostazione tmux.conf:

set -g status-right "#[fg=white]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: #(TZ=America/New_York date +%H:%M) :: #(date -u +%H:%M) UTC :: #(TZ=Europe/Belgrade date +%H:%M)"

Tuttavia, il passaggio TZ=foonon funziona all'interno di #(…). (Ottengo il server dateinvece di quello che mi aspettavo). Eventuali suggerimenti?

Risposte:


16

Tmux espande i formati temporali con strftimedentro status-lefte status-rightprima che si espanda #(…)e altre sequenze di escape nitide. Quindi %H:%Mviene prima esteso all'ora locale e dateviene eseguito con un argomento già numerico.

Raddoppia i segni di percentuale.

set -g status-right "#[fg=white]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: #(TZ=America/New_York date +%%H:%%M) :: #(TZ=UTC date -u +%%H:%%M) UTC :: #(TZ=Europe/Belgrade date +%%H:%%M)"

1

Non ho familiarità con tmux ma immagino che il problema sia che #()non funziona allo stesso modo $()della shell.

Il problema può essere risolto forzando l'uso di una shell:

#(bash -c 'TZ=Europe/Belgrade date +%H:%M')

Purtroppo questo non funziona (in tmux 1.6, Gentoo). Sta ancora stampando la data UTC.
— Excalibur,

@Excalibur Abbastanza strano. Prova a creare un wrapperscript (con TZ=Europe/Belgrade date +%H:%M) e#(/path/to/wrapperscript)
— Hauke ​​Laging il

Sì, quella soluzione mi è venuta in mente. Sebbene poiché tmux.conf sia impostato in modo dinamico usando Chef, sono titubante ad aggiungere dipendenze esterne. Forse dovrei presentare un problema con tmux. Grazie comunque!
— Excalibur,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.