2013-03-04 74 views
0

我想显示我的ip地址和日期在我的tmux状态行的右侧。我有以下命令:tmux OSX 10.8.3显示ipaddress

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

它显示的是日期而不是ipaddress。我没有收到Tmux的任何错误,所以我不确定发生了什么问题。

任何帮助是明智的!

回答

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程序,这结束了对照名为inet的未设置变量检查$1而不是字面字符串"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" 
+0

辉煌!谢谢! – wonbyte 2013-03-05 16:04:24