2012-06-18 9 views
10

"screen -R -D -S test"は、存在しない場合はtestという名前のセッションを作成し、存在する場合は接続します。GNUスクリーン:存在しない場合、どのようにバックグラウンドでスクリーンを作成できますか?

「screen -d -m -S 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という名前のデタッチセッションを作成することができますが、1がすでに存在していない場合にのみ?

答えて

13

私はあなたが-d -R組み合わせを探していると信じて:

screen -d -R -S test 

man screenから:

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

EDIT

あなただけの場合にのみ、背景画面を作成する場合それが存在しない場合、あなたの〜/ .bashrcまたは〜/ .zshrcの小さなシェル機能が動作します:

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

しかし、私は再付着したくないです、私はそれを分離して作成したいと思いません。 –

+0

@ user939259:ああ、私は誤解しました。私はマニュアルに何も表示されませんが、私はそれが存在しない場合は、新しい分離された画面を作成する短いシェル関数で私の答えを更新しました。 – jmdeldin

関連する問題