Bash
連接到 byobu 螢幕會話並執行命令?
在我正在建構的腳本中,我正在嘗試如何盡可能地自動化。更有趣的挑戰之一是連接到 byobu 螢幕會話並執行命令。
所以我從明顯的地方開始,查看有多少螢幕會話(遊戲在 byobu 中有 3 個視窗,而 lordquackstar 有 2 個。使用者在不同的膩子實例中)
game@quackgame:~$ screen -ls There is a screen on: 2019.byobu (01/05/2011 05:10:04 PM) (Attached) 1 Socket in /var/run/screen/S-game.
那裡只有一個,所以我檢查了系統
lordquackstar@quackgame:/home/game$ sudo ls -lAR /var/run/screen/ /var/run/screen/: total 0 drwx------ 2 game users 100 2011-01-06 09:18 S-game drwx------ 2 lordquackstar lordquackstar 100 2011-01-06 09:17 S-lordquackstar /var/run/screen/S-game: total 4 prwx------ 1 game users 0 2011-01-08 07:55 2019.byobu -rw------- 1 game users 0 2011-01-06 09:18 byobu-exchange -rw-r--r-- 1 game users 3 2011-01-08 07:32 byobu.updates-available /var/run/screen/S-lordquackstar: total 4 prwx------ 1 lordquackstar lordquackstar 0 2011-01-08 07:42 1169.byobu -rw------- 1 lordquackstar lordquackstar 0 2011-01-06 09:17 byobu-exchange -rw-r--r-- 1 lordquackstar lordquackstar 3 2011-01-08 07:35 byobu.updates-available
還是沒有多屏
所以對於我的問題:如何從腳本連接到 byobu 中的視窗?
在一個稍微相關的說明中,一旦我從 bash 腳本連接到它,有沒有辦法向它發送命令然後分離?
您可以直接附加到以前分離的
byobu
/screen
會話,包括視窗:byobu -r -p2
將重新連接到視窗 2(或命名的視窗)。
-X``byobu
可以向/會話發送任何命令screen
,也可以與-p
交換機一起使用。byobu -p2 -X stuff "uname -a $(echo -ne '\r')"
這會將 a 發送
uname -a
到第二個(實際上是第三個)byobu 視窗,echo
最後發送一個輸入符,以便執行命令。
您可以將命令發送到特定螢幕會話的特定螢幕視窗,而無需附加到它。
screen -S sessionname -p windowname -X screencommand
會話名稱由
-S
啟動螢幕或sessionname
命令時的選項設置;預設情況下,它byobu
與 byobu 一起使用。您還可以使用螢幕 PID 後-S
。title
您可以使用該命令設置視窗的名稱。您也可以使用視窗編號。screen -S byobu -p 1 -X stuff 'ls '