Tmux durum çubuğu kabuk komutlarında ortam değişkenlerini kullanma


10

Bir tmux durum çubuğu hangi gösterileri üç saat dilimleri oluşturmak için çalışılıyor: US Eastern Time :: UTC :: Central European Time. TZOrtam değişkenini kullanmak, datekomutun belirli bir saat dilimindeki saati göstermesini sağlar.

Bu tmux.conf ayarı ile yapmaya çalışıyordum:

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)"

Ancak, geçme TZ=fooişe yaramaz #(…). ( dateBeklediğim yerine sunucu alıyorum). Herhangi bir öneri?

Yanıtlar:


16

Tmux ile saat biçimlerini genişletir strftimeiçinde status-leftve status-rightgenişlemeden önce #(…)ve diğer keskin kaçış dizileri. Bu yüzden %H:%Mönce yerel saate genişletilir ve datezaten sayısal olan bir argümanla çalışır.

Yüzde işaretlerini iki katına çıkarın.

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

Ben tmux aşina değilim ama sorun şu ki kabuk #()gibi aynı şekilde çalışmıyor $().

Sorun, bir kabuk kullanımını zorlayarak çözülebilir:

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

Ne yazık ki bu işe yaramıyor (tmux 1.6, Gentoo'da). Hala UTC tarihini yazdırıyor.
Excalibur

@ Excalibur Oldukça garip. Bir sarmalayıcı oluşturmayı deneyin (ile TZ=Europe/Belgrade date +%H:%M) ve#(/path/to/wrapperscript)
Hauke ​​Laging

Evet, bu çözüm bana geldi. Bu tmux.conf, Chef kullanılarak dinamik olarak ayarlandığından, harici bağımlılıklar eklemekte tereddüt ediyorum. Belki de tmux ile ilgili bir sorunum var. Yine de teşekkürler!
Excalibur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.