読者です 読者をやめる 読者になる 読者になる

screenを一個attachする

perl

複数のターミナルを開いて、さらにそれぞれのターミナルでscreenを複数開いて作業をするというのが、僕の基本的な開発のスタイルです。
作業を中断するときにはdetachして、再開するときに、detachしておいたscreenを再度ターミナルでattachするということをしてます。
しかし再開するとき普通にscreen -rするとこんなのが出る。

[admin@hoge admin]$ screen -r                                                              
There are several suitable screens on:
        17319.pts-0.hoge        (Detached)
        6386.pts-1.hoge (Detached)
        3341.pts-13.hoge        (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

「一個ずつやれ」と。いっきにやる気が削がれる。黙ってctrl-Dして海外通販で自転車パーツを物色することになる。
最近パーツ探しもひと段落したので、効率化の為に簡単なスクリプトを書きました。

#!/bin/sh

DT=`screen -ls |awk '/Detached/{print $1; exit}'`

if [ -z "$DT" ]; then
    echo ''
    echo 'No detached screens. open new screen...'
    sleep 1
    screen
else
    screen -r $DT
fi

これをresume_ascreenとか名前つけて/usr/binあたりに放り込んで、さらにログインマクロで勝手に実行するようにしました。とても楽。
書いた後manみたら、−Rで同じようなことができる風なこと書いてあったけど、試したらうまくいかない。使い方が悪いのか?調べるのめんどいし、もうこれでいいや。