Tmux स्थिति बार शेल कमांड में पर्यावरण चर का उपयोग करना


10

मैं एक tmux स्टेटस बार बनाने का प्रयास कर रहा हूँ जो तीन टाइमज़ोन दिखाता है US Eastern Time :: UTC :: Central European Time:। TZपर्यावरण चर का उपयोग dateकमांड को दिए गए टाइमज़ोन में समय दिखाता है।

मैं इस 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)"

हालाँकि, पासिंग TZ=fooअंदर काम नहीं करता है #(…)। (मुझे dateउम्मीद थी कि इसके बजाय मुझे सर्वर मिलेगा )। कोई सुझाव?

जवाबों:


16

Tmux के साथ समय स्वरूपों का विस्तार strftimeमें status-leftऔर status-rightविस्तृत होने से पहले #(…)और अन्य तेज भागने दृश्यों। तो %H:%Mपहले स्थानीय समय के लिए विस्तारित किया जाता है, और dateएक तर्क के साथ चलता है जो पहले से ही संख्यात्मक है।

प्रतिशत संकेत दोगुना करें।

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

मैं tmux से परिचित नहीं हूँ लेकिन मुझे लगता है कि समस्या यह है कि शेल की #()तरह काम नहीं करती है $()

शेल के उपयोग को मजबूर करके समस्या का समाधान किया जा सकता है:

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

दुर्भाग्य से यह काम नहीं करता है (tmux 1.6, Gentoo में)। यह अभी भी यूटीसी की तारीख छाप रहा है।
एक्सकैलिबर

@Excalibur काफी अजीब। एक wrapperscript (साथ बनाने का प्रयास करें TZ=Europe/Belgrade date +%H:%M) और#(/path/to/wrapperscript)
Hauke Laging

हाँ, वह समाधान मुझे हुआ। यद्यपि चूंकि यह tmux.conf को शेफ का उपयोग करके गतिशील रूप से सेट किया गया है, इसलिए मैं किसी भी बाहरी निर्भरता को जोड़ने में संकोच कर रहा हूं। शायद मुझे tmux के साथ एक समस्या दर्ज करनी चाहिए। हालांकि धन्यवाद!
एक्सकैलिबर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.