#!/bin/bash

# Lire les fichiers gzippés avec 'more'

SANSARGS=65
PASTROUVE=66
NONGZIP=67

if [ $# -eq 0 ] # a le même effet que:  if [ -z "$1" ]
# $1 peut exister et être vide, comme dans :  zmore "" arg2 arg3
then
  echo "Usage: `basename $0` nomfichier" >&2
  # Message d'erreur vers stderr.
  exit $SANSARGS
  # Renvoie 65 comme code de sortie du script (code d'erreur).
fi  

nomfichier=$1

if [ ! -f "$nomfichier" ]  #  Mettre $nomfichier entre guillemets permet d'avoir
                           #+ des espaces dans les noms de fichiers.
then
  echo "Fichier $nomfichier introuvable !" >&2
  # Message d'erreur vers stderr.
  exit $PASTROUVE
fi  

if [ ${nomfichier##*.} != "gz" ]
# Utilisation d'accolades pour le développement des expressions"
then
  echo "Le fichier $1 n'est pas une archive gzip !"
  exit $NONGZIP
fi  

zcat $1 | more

# Utilise le filtre 'more'.
# Vous pouvez mettre 'less' à la place, si vous préférez.


exit $?   # Le script renvoie le code d'erreur de la commande tubée.
#  En fait, "exit $?" n'est pas nécessaire, car le script retournera
#+ chaque fois le code de sortie de la dernière commande exécutée.
