#!/bin/bash # filters the screen -ls output to show the sesssions sessions=`screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p'` res=`echo "$sessions" | wc -w` if [[ "$res" == "0" ]] then echo " No existing SCREEN session to reattach to..." exit fi echo '' echo " CURRENT SESSIONS" echo " ------------------------" #screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' | cat -n echo "$sessions" | cat -n echo " ------------------------" echo '' #prompt for the session to join echo -n " Reattach to session: " read session #attach to specified session linenum=0 name=`screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' | while read line do let "linenum += 1" if [[ "$linenum" -eq "$session" ]] then echo $line break fi done` if [[ "$name" != "" ]] then screen -d -r "$name" else echo " Could not reattach to '$session'" fi