代码之家  ›  专栏  ›  技术社区  ›  user5211736

在tmux状态下设置环境变量

  •  0
  • user5211736  · 技术社区  · 8 年前

    我试图在我的tmux状态中显示两个不同的时区。我有一个使用unix的命令 date

    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

    然而,它似乎是环境变量 TZ

    set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S' && TZ=':Europe/London' date '+%Z %H:%M:%S'))"
    

    显示: PDT 04:09:01 PDT 04:09:01 在我的tmux状态栏中。

    我可以通过编写一个小的shell脚本来解决这个问题,该脚本一次执行一个本地化的日期命令,但我不想依赖额外的文件。我试过使用 eval

    以下操作也不起作用。

    set -g status-right "#(echo $(TZ=':US/Pacific' date '+%Z %H:%M:%S')) #(echo $(TZ=':Europe/London' date '+%Z %H:%M:%S'))"
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   user5211736 user5211736    8 年前

    解决方案是在tmux通过strftime传递时间时,用另一个%来转义%

        2
  •  0
  •   zhenguoli    8 年前

    在我的环境中 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'))"