#!/bin/bash
# realname.sh

# À partir du nom utilisateur, obtenir le "vrai nom" dans /etc/passwd.

NBARGS=1 	 # Attend un arg.
E_MAUVAISARGS=65

fichier=/etc/passwd
motif=$1

if [ $# -ne "$NBARGS" ]
then
  echo "Usage : `basename $0` NOMUTILISATEUR"
  exit $E_MAUVAISARGS
fi  

partie_fichier ()  # Parcours le fichier pour trouver le motif,
                   #+ la portion pertinente des caractères de la ligne.
{
while read ligne  # "while" n'a pas nécessairement besoin d'une "[ condition]"
do
  echo "$ligne" | grep $1 | awk -F":" '{ print $5 }'
      # awk utilise le délimiteur ":".
done
} &lt;$fichier  # Redirige dans le stdin de la fonction.

partie_fichier $motif

# Oui, le script entier peut être réduit en
#       grep MOTIF /etc/passwd | awk -F":" '{ print $5 }'
# ou
#       awk -F: '/MOTIF/ {print $5}'
# ou
#       awk -F: '($1 == "nomutilisateur") { print $5 }' # vrai nom à partir du nom utilisateur
# Néanmoins, ce n'est pas aussi instructif.

exit 0
