세 개의 시간대를 표시하는 tmux 상태 표시 줄을 만들려고합니다
US Eastern Time :: UTC :: Central European Time
. 은 Using 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
예상 한 것 대신 서버 를 얻습니다 ). 어떤 제안?
답변
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)"
답변
나는 tmux에 익숙 #()
하지 않지만 문제는 $()
쉘에서 와 같은 방식으로 작동하지 않는다고 생각합니다 .
쉘을 사용하여 문제를 해결할 수 있습니다.
#(bash -c 'TZ=Europe/Belgrade date +%H:%M')