GNU Screen:除非连接屏幕,否则无法填充命令?

GNU Screen:除非连接屏幕,否则无法填充命令?

我有以下脚本

screen -d -m -S $1                #start screen minimized
screen -S $1 -X stuff "$beast     
"                                 #stuff commands

除非我先连接屏幕,否则似乎不会产生任何影响?这是为什么?我该如何修改此脚本,以便不需要连接屏幕?

答案1

当您以分离模式 ( ) 启动 Screen 会话时screen -d -m,不会选择任何窗口,因此稍后发送的输入screen -X stuff将丢失。您需要明确指定要将击键发送到窗口 0 ( -p 0)。无论如何,这都是一个好主意,以防您出于某种原因在该 Screen 会话中创建其他窗口。

screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"

printf \\r严格模拟Return键;许多但并非所有程序都接受换行符(\n)。)

答案2

最近在尝试回答时出现了这个问题unix.stackexchange.com 上的一个问题

摘要是,除非您附加,否则屏幕没有默认选定的窗口,但 Gilles 向我们展示了如何强制选择一个通过将参数添加-p 0到屏幕命令。

亲自我建议切换到tmux。下面是如何将屏幕命令移植到 tmux 中的方法:

tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"

相关内容