13

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

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** **... kill the process with ctrl-c...**"
as_user "screen -p 0 -S **$command** -X eval 'stuff \"exit\"\015'"
4

1 回答 1

25

我不太了解您,但要在屏幕会话中发送ctrl-c窗口:

screen -S session_name -X at window_number stuff $'\003'
# or
screen -S session_name -X -p window_number stuff $'\003'

如果您想向所有窗口发送内容,请使用#(需要引用)作为window_number

更新:

屏幕的stuff命令也支持^X(或^x)表示CTRL-X,所以下面的命令也可以用来发送CTRL-C

# Here '^C' is two chars, '^' and 'C'
screen -S session_name -X at window_number stuff '^C'
于 2013-04-15T01:50:37.237 回答