# From: Seth Chaiklin # To: chet@ins.CWRU.Edu # Subject: bash functions (sorta) # # keep: # usage: keep program # declare the a program should be "kept". i.e. try to fg a stopped one # and only when that fails start a fresh program. # keep() { case $# in 1|2) ;; *) echo "usage: keep [alias] program" 1>&2 ; return 1;; esac # progname pn=${1##*/} # set up an alias for the kept program if [ $# = 1 ]; then alias "$pn=fg $1 2>/dev/null || $1" else alias "$1=fg $2 2>/dev/null || $2" fi } # # unkeep: # usage: unkeep program # unset the alias set up by the keep function # unkeep() { if [ $# != 1 ]; then echo "usage: unkeep program" return 2 fi # unset the alias for the kept program unalias "${1##*/}" } # # kept: # lists all kept programs in 'alias: program' form # kept() { alias | grep "fg.*2>" | sed "s/alias \(.*\)='fg.*||\(.*\)'$/\1:\2/" } # some things that should be kept #keep /usr/local/bin/emacs #keep e ${EDITOR:-/usr/local/bin/emacs} #keep edit ${EDITOR:-/usr/local/bin/emacs} #keep /usr/local/bin/emm