同じ画面に3つの鞭尾を表示する方法は?

同じ画面に3つの鞭尾を表示する方法は?

非常に長いプロセスの3つを監視する必要があります。 3つの端末ウィンドウを開く代わりに、各ウィンドウには別々の進行状況バーがあります。 screen または tmux を使って 3 つのファビテールプログレスバー出力を 1 つの端末に送信する方法をお探しですか?可能ですか?

たとえば、次の出力を端末画面に同時に3回送信する必要があります。

#!/bin/bash
{
  DEPLOYING=0;
  while [ "$DEPLOYING" -le "100" ]; do
      DEPLOYING=$(deploy $ENVIRONMENT)
  done
} | whiptail --gauge "Deploying application to $ENVIRONMENT environment..." 6 50 0

ベストアンサー1

次のtmuxの例を使用できます。

tmux -f /dev/null \
 new-session -s mywhiptail 'mycmd 1' \; \
 split-window -v -l 8 -t 0 'mycmd 3' \; \
 split-window -v -l 8 -t 0 'mycmd 2'
tmux kill-session -t mywhiptail

スクリプトはどこでmycmd実行されます。コマンドが画面に正しい順序で表示されるようにするには、コマンドを実行する必要がある順序を表示するためにオプションの引数(1、2、または3)を追加しました。 -l 8ホイップテールのウィンドウの高さを8行に設定して変更することもできます。

おすすめ記事