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.