Shell GNU屏幕:如果没有';不存在?
“screen-R-D-S test”将创建一个名为test的会话(如果不存在),或者连接到它(如果存在) “screen-d-m-S test”将创建一个名为test的新分离会话,无论它是否存在,可能会导致多个名为test的会话:Shell GNU屏幕:如果没有';不存在?,shell,gnu-screen,Shell,Gnu Screen,“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
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的分离会话,但前提是该会话尚未存在?我相信您正在寻找
-d-R
组合:
screen -d -R -S test
从人工屏幕
:
-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
,但我不想重新连接,我只想创建分离的,而不是附加到它。@user939259:啊,我误解了。我在手册中没有看到任何内容,但我已经用一个简短的shell函数更新了我的答案,以创建一个新的分离屏幕(如果它不存在的话)。