我正在尝试在我的tmux状态行的右侧显示我的ipaddress和日期。我有以下命令:
set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == "inet" { print $2 }') #[fg=cyan]%d %b %R"
显示日期但不显示ipaddress。我没有从Tmux得到任何错误,所以我不确定出了什么问题。
感谢任何帮助!
答案 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"