読者です 読者をやめる 読者になる 読者になる

多数のコマンドをtmux内で次々に起動し実行する方法を探す

基本的には全部tmuxのmanに書いていると思うけど、まず参考になるサイトを検索。
http://tyano.shelfinc.com/post/81276875680/tmux-with-shell
このサイトの例だと、まず新しいsessionを作って(new-session)、すぐにデタッチ(-d)。
同時にsessionとwindowに名前をつけ(-s, -n)、start directoryをセットする(-c)。
さらに、次々とwindowを作っていって、最後にattachする、という流れになっている。
この流れのミソはすぐにデタッチしてしまうことと思う。
" \; "でtmuxコマンドをつなぐこともできる。

つぎに、開いたsession(window)内でシェルのコマンドを実行したい場合は

% tmux new-session 'ls'

とすればよいが、この場合シェルの実行が終わった後に、session(window)がexitしてしまう。トリックは下のサイトに書いていることにしたがって、'ls; zsh -i'などとすれば、シェルがinteractive modeで起動するのでexitせず、実行したコマンドの画面出力結果が確認できる。
http://unix.stackexchange.com/questions/17116/prevent-pane-window-from-closing-when-command-completes-tmux
つまり、

% tmux new-session 'ls; zsh -i'

teeで念のため画面出力をファイルに書き込んでおいたほうがよいかもしれない。

最後に、スクリプトで多数のsessionを作ってコマンドを実行するには、

for i in {0..10};do tmux new-session -d "echo $i; zsh -i";done

みたいな感じでうまくいきそうだ。

もっと賢いやり方がありそうだけど、いまやりたいことはこれでできそうなので、メモとしてここにまとめておいた。