スクリプトのtmuxまたはgnome-terminalでプログラムセットを起動するには?

スクリプトのtmuxまたはgnome-terminalでプログラムセットを起動するには?

tmux、gnome-terminal、またはxfterminalで複数のコマンドを同時に起動し、各タブに対して1つのコマンドを実行し、コマンドが完了したらタブを閉じたいです。

他のソフトウェアも歓迎します

XX「cmd1」「cmd2」「cmd3」などの操作を行うためにスクリプトをエクスポートしたいと思います。

答え1

tmux セッションを開き、最初のコマンドを開始します。その後、新しいウィンドウでより多くのコマンドを起動し、最後にウィンドウサイズを均等に分配します。

tmux \
  new-session  "command1 ; read" \; \
  split-window "command2 ; read" \; \
  split-window "command3 ; read" \; \
  split-window "command4 ; read" \; \
  select-layout even-vertical

各コマンドの後は、readコマンドが完了した後でも出力を読み取ることができるようにウィンドウが開いたままになります。

答え2

tmux new -d -s my-session 'echo window-1 pane-1; sleep 8' \; \
          split-window -d 'echo window-1 pane-2; sleep 6' \; down-pane \; \
            new-window -d 'echo window-2;        sleep 4' \; next-window \; \
                attach \;

上記は一般的なアイデアの実行例です。詳細については、次を参照してください。シングルスクリプトで分割画面X端末でStreamripperとmplayerを実行する方法

答え3

プログラム構成が常に同じである場合は、次のツールを使用できます。ティモシー

~/.teamocil/sampleたとえば、次のコンテンツを含む構成で作成する必要があります。

windows:
  - name: my-first-window
    root: ~/Projects/foo-www
    filters:
      before: "rvm use 1.9.2"
      after: "echo 'I am done initializing this split.'"
    splits:
      - cmd: "git status"
      - cmd: "bundle exec rails server --port 4000"
        width: 50
      - cmd:
          - sudo service memcached start
          - sudo service mongodb start
        height: 50

その後、次を実行できます。tmux new-session -d "teamocil sample" \; attach

答え4

これにより、gnome-terminal次のことができます。

gnome-terminal --window -e 'cmd1' --tab -e 'cmd2' --tab -e 'cmd3'

各タブは、対応するコマンドの完了後に閉じられます。

関連情報