如何重新连接到“屏幕”会话或启动新命令

如何重新连接到“屏幕”会话或启动新命令

自从我开始使用screen启动文本模式(控制台)电子邮件客户端(即alpine)以来,我从未因网络断开而丢失部分写入的电子邮件。很有用。

然而,启动电子邮件客户端现在有点复杂:

  1. 检查是否有旧会话screen -list
  2. 取决于上一步:
    • 如果有,请重新连接screen -U -r <number>
    • 如果没有,请启动电子邮件客户端screen -U alpine

如何简化这些步骤,以便我只能运行简单的命令(简单脚本),即start_or_reconnect alpine?我们可以假设,如果有多个会话处于活动状态,则这是一个错误,或者只使用第一个会话......

答案1

使用显式会话名称(-S选项),并用于-RR重新附加到现有会话或创建一个会话(如果没有)。

alias m='screen -S alpine -d -RR alpine'

答案2

又快又愚蠢:

#!/bin/sh
ARG=`screen -list | grep Detached | awk '{print $1}'`
if [ -z "$ARG" ]; then
    screen -U alpine
else
    screen -U -r $ARG
fi

相关内容