11

複数のウィンドウで実行されているスクリーンセッションがあります。それに接続し、その中に新しい画面ウィンドウを作成し、その新しいウィンドウでシェルを開始したいと思います。

質問:スクリーンセッションの外のコマンドラインからこれを行うにはどうすればよいですか?

私はすでにたくさん試しました、例えばscreen -x(しかしそれは既存のスクリーンウィンドウの1つに接続します;それは新しいものを作成せず、新しいシェルを開始しません)。ヒントは大歓迎です。

環境はLinux(Ubuntu 12.04)です。

4

3 に答える 3

6

メーリングリストで何かを見つけました、ありがとうtuxuday :)

私は今それをこのようにやっています:

#!/bin/bash
screen -X screen -t NEWWINDOW  # create new window (switches existing attached terminal)
sleep 0.1
screen -X other  # switch existing attached terminal back to its old window
sleep 0.1
gnome-terminal -e 'screen -x -p NEWWINDOW'  # connect to new window

これらの睡眠についてはよくわかりません。すべての環境で必要なわけではないかもしれませんが、0.2秒は簡単に待つことができます。

.bash_aliasesは画面ウィンドウのタイトルを少し遅れて変更しているので、厄介なNEWWINDOWことが長く続くことはありません(したがって、このスクリプトへのさらなる呼び出しを妨げることはありません)。

于 2012-05-15T12:38:39.973 に答える
6

新しいデタッチウィンドウをに追加しsesion_nameて実行しますcommand

screen -S sesion_name -x -X screen bash -c 'command; exec bash'
于 2016-06-26T22:39:11.463 に答える
6

参加するウィンドウを選択するには、-pオプションを使用します。与える+と新しいものが作成されるので、コマンドは次のようになります。

screen -x session_name -p +

これは、マニュアルページに記載されています。

-pn̲u̲m̲b̲e̲r̲_o̲r̲_n̲a̲m̲e̲ | ̲-̲ | ̲ = ̲ | ̲ + ̲

Preselect a window. This is useful when you want to reattach to a  
specific windor or you want to send a command via the "-X" option  
to a specific window. As with screen's select commant, "-" selects  
the blank window. As a special case for reattach, "=" brings up the  
windowlist on the blank window. 
于 2017-03-04T19:06:24.777 に答える