Cela faisait longtemps que je n'avais pas ``jou�'' avec mon shell (bash)
Le but est de r�cup�rer le nom complet de l'utilisateur ($USER) qui se
trouve confin� au d�but du cinqui�me champs dans /etc/passwd:
$ UNAME=$(grep ^$USER: /etc/passwd |cut -d: -f 5|cut -d, -f1)
$ echo $UNAME
( simple et efficace ;)
mais aussi:
$ UNAME=(awk -F: /$USER/' {print $5}'</etc/passwd|sed -e s/,.*$//)
$ echo $UNAME
( bof ;)
voire:
$ UNAME=$(sed </etc/passwd \
-e "s/^\(${USER}:[^:]*:[0-9]*:[0-9]*:\([^,]*\),.*\|^.*\)$/\2/")
$ echo $UNAME
( sans commentaires ;)
ou encore:
$ UNAME=$(perl -pe /^$USER':[^:]:\d+:\d+:([^,]*),/ && do {
print $1 ; exit 0;};undef $_' </etc/passwd)
$ echo $UNAME
( J'aime bien, en perl, l'id�e du masque permettant de mettre en �vidence
ce que l'on cherche. ;)
ou alors, sans quitter bash:
$ UNAME=$(IFS=',:'; while read l;do set -- $l;
[ "$1" == "$USER" ] && echo $5 && exit 0
done </etc/passwd;)
$ echo $UNAME
( J'aime bien la possibilit� de r�cup�rer les champs avec $1, $2, $3...
en l'occurence ``$1 == $USER'' ne laisse pas d'ambiguit� ;)
--
F�lix Hauri - <[EMAIL PROTECTED]> - http://www.f-hauri.ch
_______________________________________________
gull mailing list
[EMAIL PROTECTED]
http://lists.alphanet.ch/mailman/listinfo/gull