2012-06-18 88 views
10

「screen -R -D -S test」將創建一個名爲test的會話(如果它不存在),或者如果它連接到該會話GNU屏幕:如果不存在,我如何在後臺創建屏幕?

「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的分離會議,但只有一個不存在?

回答

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

+3

但我不想重新附加,我只是想創建它分離和_not_附加到它。 –

+0

@ user939259:啊,我誤解了。我沒有看到手冊中的任何內容,但是我已經使用短殼函數更新了我的答案,以創建一個新的分離式屏幕(如果它不存在)。 – jmdeldin