tmux OSX 10.8.3显示ipaddress

时间:2013-03-04 19:28:07

标签: osx-mountain-lion tmux

我正在尝试在我的tmux状态行的右侧显示我的ipaddress和日期。我有以下命令:

set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == "inet" { print $2 }') #[fg=cyan]%d %b %R"

显示日期但不显示ipaddress。我没有从Tmux得到任何错误,所以我不确定出了什么问题。

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

检查实际最终设置的值:

tmux show-option -g | grep status-right

我希望您会发现inet周围没有双引号。双引号解析不会将#()语法视为特殊(与shell中的"$()"不同,您可以在命令替换中使用双引号)。因此,解析分为三部分:

  • "#[fg-cyan]#(ifconfig | awk '$1 == "
  • inet
  • " { print $2 }') #[fg=cyan]%d %b %R"

这些连接在一起:

#[fg-cyan]#(ifconfig | awk '$1 == inet { print $2 }') #[fg=cyan]%d %b %R

作为 awk 程序,最终会针对名为$1的未设置变量而不是文字字符串inet检查"inet"; awk 可能不会抱怨,但任何行都不会匹配。

您可以转义双引号,让它们传递到最终字符串:

set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == \"inet\" { print $2 }') #[fg=cyan]%d %b %R"

当我设置它时,我只看到127.0.0.1;您可能希望添加|tail -1以使用最后一行而不是第一行。

另外两件事:

  • 您有[fg-而不是[fg=
  • 因为你在两个地方都指定了相同的颜色,所以你可以省略第二种颜色。

因此:

set -g status-right "#[fg=cyan]#(ifconfig | awk '$1 == \"inet\" { print $2 }'|tail -1) %d %b %R"