我正在尝试在tmux状态行的右侧显示我的I地址和日期。我有以下命令:
set -g status-right "#[fg-cyan]#(ifconfig | awk '$1 == "inet" { print $2 }') #[fg=cyan]%d %b %R"它显示的是日期,而不是It地址。我没有从Tmux得到任何错误,所以我不确定出了什么问题。
任何帮助都是值得的!
发布于 2013-03-05 17:45:35
检查最终实际设置的值:
tmux show-option -g | grep status-right我希望您会发现inet周围没有双引号。双引号解析不会将#()语法视为特殊语法(与shells中的"$()"不同,在shells中,您可以简单地在命令替换中使用双引号)。因此,解析分三部分完成:
"#[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"https://stackoverflow.com/questions/15209482
复制相似问题