2013-03-04 40 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