Shell 将ctrl-c发送到特定屏幕会话

Shell 将ctrl-c发送到特定屏幕会话,shell,gnu-screen,sigint,Shell,Gnu Screen,Sigint,我正在设计一个脚本来启动命名屏幕会话中的进程 as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'" 因此bash myscript.sh start test将创建一个名为test的屏幕,并使用软件运行test.cfg 现在,我希望我的脚本访问特定的屏幕会话,并按CTRL+C组合键停止正在运行的进程,这样我就可以终止屏幕会话 as_user "screen

我正在设计一个脚本来启动命名屏幕会话中的进程

as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'"
因此
bash myscript.sh start test
将创建一个名为test的屏幕,并使用软件运行
test.cfg

现在,我希望我的脚本访问特定的屏幕会话,并按CTRL+C组合键停止正在运行的进程,这样我就可以终止屏幕会话

as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'"
大概是这样的:

as_user "screen -p 0 -S **$command** **... kill the process with ctrl-c...**"
as_user "screen -p 0 -S **$command** -X eval 'stuff \"exit\"\015'"

我不太明白您的意思,但要在屏幕会话中将
ctrl-c
发送到窗口:

如果要向所有窗口发送内容,请使用
(需要引用)作为
窗口编号

更新:

屏幕的
stuff
命令还支持
^X
(或
^X
)表示
CTRL-X
,因此以下命令也可用于发送
CTRL-C

screen -S session_name -X at window_number stuff ^C

无法使
at
工作,但这仅适用于活动窗口,这可能对某些人有用:
screen-S session\u name-X stuff$'\003'
screen-S session\u name-X at“#”stuff$'\003'
使用
screen-S session\u name-X quit
非常适合我。我现在可以终止任何屏幕会话。谢谢。太棒了,这正是我想要的!您有关于
$'\003'
编码的更多信息吗?我可以假设Ctrl+A是
001
,Ctrl+B是
002
等等吗?还有,有没有一种方法可以发送光标上、下、左、右键?对于ctrl字符,请看哦,现在我想知道,因为您提到的屏幕还支持
^C
。如何键入文字
^
字符?