我正在运行 screen。如果我输入命令screen sleep 5
,当前区域将被一个新的屏幕替换,其中显示 sleep 的空输出。5 秒后,它会返回到命令行。我想做一些事情来阻止 screen 将新窗口设为区域中的当前窗口。
我注意到,如果我运行screen sleep 0.01 ; screen sleep 5
该屏幕,它会切换到第一个睡眠状态,然后启动第二个睡眠状态,并在 0.01 秒到期时切换回原始窗口。这有效,但该区域会闪烁空白屏幕。
我考虑使用screen -Q number
获取当前屏幕编号,以便我在启动后选择返回该编号。这可能有效,但屏幕坚持显示命令结果,并在执行此操作时完全冻结5秒钟。
答案1
我找到了一个答案,它似乎是确定性的(延迟技术不是),但确实使屏幕空白。我写道:
#!/bin/bash
screen -X msgwait 0
number="$(screen -Q number)"
screen "$@"
screen -X select "${number%% *}"
screen -X msgwait 5
这也意味着 msgwait 会重置为其默认值(但我之前从未更改过它)。