2012-06-18 8 views
10

"Bildschirm -R -D S-Test" wird eine Sitzung mit dem Namen test erstellen, wenn es nicht existiert, oder eine Verbindung herstellen, wenn esGNU-Bildschirm: Wie kann ich einen Bildschirm im Hintergrund erstellen, wenn es nicht existiert?

"screen -d -m-test" wird ein neues erstellen frei stehende Sitzung Test genannt, ob es existiert oder nicht, was möglicherweise zu mehreren Sitzungen namens Test führende:

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) 

Wie kann ich eine freistehende Sitzung namens Test, schaffen aber nur, wenn man nicht bereits vorhanden ist?

Antwort

13

Ich glaube, du bist für die -d -R Kombination suchen:

screen -d -R -S test 

Von man screen:

 -d -R Reattach a session and if necessary detach or even create it 
       first 

EDIT

Wenn Sie gerade nur ein Hintergrundbild erstellen möchten, wenn es existiert nicht, eine kleine Shell-Funktion in deinem ~/.bashrc oder ~/.zshrc funktioniert:

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 
} 

Dann rufen Sie einfach bgsc test.

+3

Aber ich möchte nicht wieder anhängen, ich möchte es einfach losgelöst und _not_ nicht anhängen. –

+0

@ user939259: Ah, ich missverstanden. Ich sehe nichts im Handbuch, aber ich habe meine Antwort mit einer kurzen Shell-Funktion aktualisiert, um einen neuen Bildschirm zu erstellen, falls dieser nicht existiert. – jmdeldin

Verwandte Themen