我正在尝试在我的tmux状态中显示两个不同的时区。我有一个使用unix date
实用程序的命令,该实用程序在我的shell中执行时有效。
echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S' && TZ=':Europe/London' date '+%Z %H:%M:%S')
制作:PDT 04:05:59 BST 12:05:59
但是,当我在tmux中执行此命令时,似乎环境变量TZ
被破坏了。
set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S' && TZ=':Europe/London' date '+%Z %H:%M:%S'))"
在我的tmux状态栏中显示:PDT 04:09:01 PDT 04:09:01
。
我可以通过编写一个小的shell脚本来解决这个问题,该脚本一次执行一个本地化的日期命令,但我不想依赖额外的文件。我尝试过使用eval
,但没有运气。任何帮助将不胜感激。
更新
以下情况也不起作用。
set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S')) #(echo $(TZ=':Europe/London' date '+%Z %H:%M:%S'))"
答案 0 :(得分:0)
在我的环境中,tmux
状态栏无法在状态栏中显示多行输出。它只显示输出的第一行。所以我必须在没有换行符的情况下打印日期并连接输出。
set -g status-right "#(echo -n $(TZ=':US/Pacific' date '+%Z %H:%M:%S ') && echo -n ' ' && echo -n $(TZ=':Europe/London' date '+%Z %H:%M:%S'))"
答案 1 :(得分:0)
解决方案是使用另一个%来逃避%,因为tmux通过strftime传递时间