62 lines
1 KiB
Text
62 lines
1 KiB
Text
# From: Seth Chaiklin <psykseth@aau.dk>
|
|
# 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
|