Fragen zu Unix und C, Helfende Haende
Listing 1: Funktion _mvmvmv_(), iX 03/92 Seite 109
Listing 2: Shellskript zum automatischen Ausloggen, iX 03/92 Seite 109
------------------------------------------------------------------------

#!/bin/sh
# idle [time]
# idle prueft nach "time" Minuten, ob noch Terminalaktivitaet erfolgt
# und loggt dann nach Rueckfrage automatisch aus

LOGOUT = 20                                           # Default-Zeit
TTY=`tty | sed 's+/dev/++'`                           # Terminal Name
(
while true                                            # endlos-Schleife
do
  TIME=`who -u | grep "^$LOGNAME" | awk '$2 == "'$TTY'" { print $6 }'`
  if echo $TIME | grep ":" > /dev/null 2 > &1         # > 60 Sek. Ruhe
     then
     TIME=`echo $TIME | awk -F: '{ print $2 }'`       # Minuten
     if [ $TIME -ge `expr ${1:-$LOGOUT} + 1` ]        # info-time
        then
        break
     fi
     if [ $TIME -ge ${1:-$LOGOUT} ]                   # idle-time
        then
        echo "Time to log out now!" > /dev/tty
     fi
   fi
   sleep 60                                           # Wartezeit
done

echo "Log out now!" > /dev/tty

PID=|`who -u | grep "^$LOGNAME" | awk '{ print $7 }'` # PID der Shell
kill -9 $PID                                          # logout
) &                                                   # im Hintergrund


------------------------------------------------------------------------

_mvmvmv_()
  {
   typeset old cmd new list i	# nur fuer Kornshellnutzer, ansonsten
				# Zeile weglassen

   old=`pwd`
   cmd=$1; shift

   eval cd \$$# 2>&1 >/dev/null &&
    {
     new=`pwd`; cd $old
     list=
     while [ $# -gt 1 ] ; do list="$list $1"; shift; done
     $cmd $list $new;
    }
  }

Besitzer (und hoffentlich Anwender) der Kornshell schreiben ausserdem:

typeset -fx Mv Cp Ln _mvmvmv_

