自从我开始使用screen
启动文本模式(控制台)电子邮件客户端(即alpine
)以来,我从未因网络断开而丢失部分写入的电子邮件。很有用。
然而,启动电子邮件客户端现在有点复杂:
- 检查是否有旧会话
screen -list
- 取决于上一步:
- 如果有,请重新连接
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