“screen -R -D -S test”将创建一个名为test的会话,如果它不存在,或者如果它存在则连接到它
“screen -d -m -S test”将创建一个名为test的新分离会话,无论它是否存在,可能会导致多个名为test的会话:
There are several suitable screens on:
9705.test (06/18/2012 06:42:58 PM) (Detached)
9639.test (06/18/2012 06:42:57 PM) (Detached)
如何创建名为test的分离会话,但仅当一个尚未存在?
答案 0 :(得分:13)
我相信你正在寻找-d -R
组合:
screen -d -R -S test
来自man screen
:
-d -R Reattach a session and if necessary detach or even create it
first
修改强>
如果你只是想创建一个背景屏幕,只有它不存在,你的〜/ .bashrc或〜/ .zshrc中的一个小shell函数将起作用:
function bgsc {
if screen -list | awk '{print $1}' | grep -q "$1$"; then
echo "screen $1 already exists" > &2
else
screen -d -m -S $1
fi
}
然后拨打bgsc test
。