我正在尝试在 tmux 状态行的右侧显示我的 ipaddress 和日期。我有以下命令:
set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == "inet" { print $2 }') #[fg=cyan]%d %b %R"
它显示日期,但不显示 IP 地址。我没有从 Tmux 收到任何错误,所以我不确定出了什么问题。
任何帮助表示赞赏!
我正在尝试在 tmux 状态行的右侧显示我的 ipaddress 和日期。我有以下命令:
set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == "inet" { print $2 }') #[fg=cyan]%d %b %R"
它显示日期,但不显示 IP 地址。我没有从 Tmux 收到任何错误,所以我不确定出了什么问题。
任何帮助表示赞赏!
检查实际最终设置的值:
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
,而不是文字 string "inet"
;awk可能不会抱怨,但没有行会匹配。
您可以转义双引号以让它们传递到最终字符串中:
set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == \"inet\" { print $2 }') #[fg=cyan]%d %b %R"
当我设置这个时,我只是看到127.0.0.1
;您可能想要添加 a|tail -1
以使用最后一行而不是第一行。
另外两个项目:
[fg-
而不是[fg=
, 和因此:
set -g status-right "#[fg=cyan]#(ifconfig | awk '$1 == \"inet\" { print $2 }'|tail -1) %d %b %R"