byobu 1コマンドで複数のコマンドを実行 screen 編
byobu はロボットやリモートでの作業に便利
以前紹介したbyobuでの複数コマンド実行はbackendがtmuxの人にしか使うことができない。
memo-methods-in-researching.hatenablog.com
ちなみにbackendの変更は
$byobu-select-backend
で変更可能。
screenはそれぞれのwindowに対してユニークな名前がつけられてわかりやすい。
screenコマンドの場合はbyobuに入らなくてもガンガンコマンドをバックプロセスに投げられる。
もう少し工夫した方法はないか。
1. windowの名前の変更
スクリーン内のウィンドウの名前はこのコマンドで変更することができる。
$ echo -ne "\ekhello\e\\"
2. セッション名、window名を指定してコマンドを実行
$ byobu -r <Session> -p <Window> -X stuff "<command>^M"
例
#!/bin/bash command_0='echo -ne "\ekhello\e\\\\" && screen && echo robot' command_1='echo -ne "\ekhello2\e\\\\" && screen && echo research' session="toaru" window_bash="bash" byobu -d -m -S ${session} byobu -r ${session} -X stuff "${command_0}^M" sleep 1s byobu -r ${session} -p $window_bash -X stuff "${command_1}^M" echo "all done ... "
便利