私は毎晩iTerm 2を使用しており、左のステータスバーには次のtmux構成設定があります。
set -g status-left "#[fg=green]#h @ #[fg=cyan]#(extip | awk '{print \"ip \" $1}') #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}'"
en0
私の外部IPとVPN接続(接続されている場合)を印刷する必要があります。extip
私は自分で書いたが長い間手を触れていないツールであり、コマンドラインでうまく動作します(そしてデバッガが接続されていると、このツールが呼び出され、正しく返されることがわかります)。数週間前まではすべてうまくいきましたが、それ以降は<'extip | awk '{print "ip " $1}'' not ready>
外部IPアドレスの代わりに表示されます。残りはまだ問題なく完全に実行されます。最初はiTermの夜間の不安定性だと思いましたが、数回のアップデート後もまだ機能しないため、最初からやってはいけないようで単純な偶然かもしれないと思います。機能が停止した理由と再び機能させる方法を教えてくれる人はいますか?
答え1
https://github.com/tmux/tmux/issues/733#issuecomment-277230881話す
準備ができていませんメッセージは正常です。 tmux は、コマンドの実行がまだ完了していないことを通知し、コマンドが完了するとすぐに出力を表示します。
Ubuntu 16.04から16.10にアップグレードした後、SSHサーバーをウィンドウステータス形式で表示するスクリプトでこれを確認しました。接続すると点滅します。実際には、次のようにして再現できます。
tmux setw -g window-status-current-format '#(echo `tmux display-message -p "#W #{pane_pid}"`)'
これにより、ssh aslkfdsdkljfslkdsajf
接続しようとすると点滅します。
結果が再び出るのに時間がかかると思います。extip
これをORだけ実行するシェルスクリプトに置き換えるとecho 1
どうなりますかsleep 1; echo 1
?
(また、tmuxはそのウィンドウ/ウィンドウでコマンドが1回以上実行されるとキャッシュする必要がありますが、コマンド自体が変更された場合は上記の例のようにキャッシュを使用しません。送信しました。エラーレポートこの場合、「準備完了」コマンドをミュートする方法について説明します。 )
答え2
私は過去にデフォルトのdisplay-message
コマンド(例"Welcome, $USER..."
:)でtmuxをインスタンス化してこの問題を解決しましたが、最初に外部アプリケーションを実行するのに1秒かかります。
もちろん、あなたのニーズによって異なります。私のプロファイルスクリプトでtmuxを起動しますが、必要に応じてtmuxを実行するとエイリアスを使用できます。
# /usr/bin/tmux -V
tumx 2.4
# /usr/bin/tmux new-session \; display-message "Welcome, $USER..."