1

tmux ステータス行の右側に IP アドレスと日付を表示しようとしています。次のコマンドがあります。

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

日付は表示されますが、IP アドレスは表示されません。Tmux からエラーが発生していないため、何が問題なのかわかりません。

どんな助けでも大歓迎です!

4

1 に答える 1

2

実際に設定される値を確認してください。

tmux show-option -g | grep status-right

の周りに二重引用符がないことがわかると思いますinet。二重引用符の解析では、構文は特別なものとは見なされません(コマンド置換内で二重引用符を使用できるシェル#()とは異なります)。"$()"したがって、解析は3つの部分で行われます。

  • "#[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付けられた未設定の変数に対してチェックすることになります。awkはおそらく文句を言わないでしょうが、一致する行はありません。inet"inet"

二重引用符をエスケープして、最後の文字列に渡すことができます。

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

これを設定すると、わかり127.0.0.1ます。|tail -1最初の行ではなく最後の行を使用するようにを追加することをお勧めします。

他の2つのアイテム:

  • [fg-代わりに[fg=、、
  • 両方の場所で同じ色を指定しているので、おそらく2番目の色を省略できます。

したがって:

set -g status-right "#[fg=cyan]#(ifconfig | awk '$1 == \"inet\" { print $2 }'|tail -1) %d %b %R"
于 2013-03-05T09:45:34.777 に答える