いくつかのコマンドを起動するtmuxスクリプト


21

bashスクリプトで次のように書くにはどうすればよいですか?

tmux # Start tmux session.
compass watch /path/to/project1/compass/ # Run the first process.
Ctrl + B, " # Split the pane.
compass watch /path/to/project2/compass/ # Run the second process.
Ctrl + B, D # Exit the session.

回答:


21
tmux \
    new-session  'compass watch /path/to/project1/compass/' \; \
    split-window 'compass watch /path/to/project2/compass/' \; \
    detach-client

new-session(新規作成コマンドtmuxセッション)とsplit-window(2つのペインに現在のウィンドウを分割する)コマンドでtmux実行するには、オプションのシェルコマンドを取ります。detach-client最後に明白なことを行います。

水平分割(2つのペインを横に並べる)が必要な場合は、 split-window -hは、上記のコマンドします。

複数のtmuxコマンドを送信する場合は、コマンドをでtmux区切る必要があります;;それをエスケープ/引用してシェルから保護する必要がある(';'";"または\;の終わりとして解釈からシェルを停止します)tmuxコマンド。

読みやすくするために、全体を別々の行に分割しました。スクリプトでこれを行う場合(推奨)、最後に何もないことを確認してください\各行行のます。

セッションに再接続しtmux atmux attachまたはtmux attach-session(これらはすべて同じです)。

tmux両方のコマンドの実行が終了すると、セッションは終了します。


3

これはうまくいきませんでした(「ls -la」のようなことをしようとしていました)。何があった:

tmux new-session -d bash
tmux split-window -h bash
#sends keys to first and second terminals
tmux send -t 0:0.0 "<my-first-command>" C-m
tmux send -t 0:0.1 "<my-second-command>" C-m
tmux -2 attach-session -d

これにより、かなり汎用的なものを実行でき、見苦しくなりますが、かなり機能的です。

他の人が同じものを探している場合に備えて、ここに置いておきます。

ソース:https : //gist.github.com/kizzx2/4739236

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.