: ########################################################################## # Shellscript: benutzer - vollstaendigen Usernamen ausgeben # Versionsnr : 1.2 # Autor : Heiner Steven (heiner.steven@odn.de) # Erstellung : 23. September 1993 ########################################################################## # Beschreibung: # - Der Username wird in /etc/passwd nachgesehen und ausgegeben # - ist der Name nicht bekannt, wird er mit grossem Anfangsbuchstaben # ausgegeben (z.B. unbekannter user "gast": "Gast") # Changes # 06.09.95 stv Use "malias" to resolve mail aliases (1.2) ########################################################################## PN=`basename $0` # Programmname VER='1.2' # Versionsnummer Hilfetext () { echo "$PN - Benutzernamen ausgeben, Version $VER (stv)" echo "Aufruf: $PN user [user ...]" echo echo "Der vollstaendige Benutzername des Unix-Users wird ausgegeben." echo "Wenn der Name nicht festgestellt werden kann, wird er trotzdem" echo "mit grossem Anfangsbuchstaben ausgegeben" exit 1 } if [ $# -lt 1 ] then # kein Parameter: eigener Name ist Vorgabe : ${LOGNAME:=`who am i | cut -f1 -d' '`} set $LOGNAME else while [ $# -gt 0 ] do case "$1" in -V) echo "$PN, Version $VER vom 93/09/23" exit 0 ;; -h) Hilfetext ;; -*) Hilfetext ;; *) break;; # Username angegeben esac shift done fi Tmp=${TMPDIR:-/tmp}/be$$ # Hilfsdatei auf jeden Fall loeschen trap "rm -f $Tmp" 0 trap "exit 1" 1 2 3 15 # wenn Yellow Pages (NIS) installiert sind, dann benutze sie... if [ -x /bin/ypcat ] then ypcat passwd > $Tmp else cp /etc/passwd $Tmp fi # jeder Benutzername darf aus nur einem Wort bestehen, und keine # Leerzeichen enthalten (andernfalls "$@" anstatt $* verwenden) for i in $* do Name="`grep \"^$i:\" $Tmp | cut -f5 -d':'`" if [ -z "$Name" ] then Name=`malias "$i" | cut -d'@' -f1` Name="`grep \"^$Name: $Tmp | cut -f5 -d':'`" fi [ -z "$Name" ] && { # angegebenen Namen mit grossem Anfangsbuchstaben ausgeben Name="`echo $i | sed 's/^\(.\).*/\1/' | tr '[a-z]' '[A-Z]'`" Name="$Name`echo $i | sed 's/^.\(.*\)/\1/'`" } echo "$Name" done exit 0