#!/bin/bash delim=, : ${screen:=$0}; screen=${screen##*/} nt() { echo -n $'\x1b]0;'"$*"$'\x07'; } nt "$screen" apps() { unset IFS [ -n "$STY" ] && { for A; do eval screen $A; done; exit; } screen -r -D "$screen" && exit tmp=".apps.tmp.$$.$RANDOM$RANDOM$RANDOM" ( umask 077; mkdir /tmp/"$tmp" ) || { echo >&2 "`basename $0`: can't create temp"; exit 1; } file="/tmp/$tmp/tmp" { if [ "${LINES:-10}" -le 20 ] then grep -v hardstatus else cat; fi < $HOME/.screenrc for A; do echo "screen $A"; done } >"$file" (sleep 2 ; rm -rf "$tmp") & exec screen -c "$file" -D -RR "$screen" } if [ $# = 0 ]; then [ "$apps" = "${apps#*$delim}" ] || IFS=$delim apps $apps else apps "$@" fi