ロボクメモ Robojimamemo

ロボットを研究する、ある学生のメモ。日々、勉強したことをメモ代わりに残して共有します(ROS,C++,python,linux,etc...)

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 ... "

f:id:shun0612:20181123165225p:plain:w300 f:id:shun0612:20181123165236p:plain:w300

便利