# Fichier test.sh.
# Exemple d'utilisation de test.
# S'il n'y a pas de parametres fournis par l'utilisateur...
if [ $# = 0 ]
then
echo Aucun argument recu !
echo "$0 risque de ne pas bien marcher..."
echo
echo "Normalement il faut fournir en premier argument un nom"
echo "de fichier, comme test.sh, par exemple, soit le numero"
echo "d'un utilisateur comme indique dans le fichier /etc/passwd"
echo "(troisieme champ <user:password:Numero>, 0 devrait marcher)..."
echo
echo "Essayer \"$0 $0 0\""
echo
fi
# $? : valeur de sortie de la derniere commande executee.
#------#
# test #
#------#
# Quelque conditions de test :
# Fichiers...
# -f : fichier normal.
# -s : fichier non vide.
# -d : repertoire.
# -r : fichier accessible en lecture.
# -w : fichier accessible en ecriture.
# Variables...
# -z : variable vide.
# -n : variable non vide.
# Comparaison d'une variable a un nombre...
# -eq : egal.
# -ne : different.
# -lt : <.
# -ge : >.
# -le : <=.
# -ge : >=.
if test -f "$1"
# forme abregee : if [ -f "$1" ]
then
echo Le fichier \"$1\" est bien present.
echo "Nous allons maintenant lire ce fichier grace a la commande less"
echo 'Pour quitter less, taper "q"'
echo "Voulez vous lire le fichier $1 (o pour l'editer) ?"
read reponse
if [ $reponse = "o" ]
then
less "$1"
else
echo "Ok, pas d'edition du fichier..."
fi
else
echo "Fichier \"$1\" absent"
fi
ligne=`grep "^[^:]*:[^:]*:$2:" /etc/passwd`
if [ -n "$ligne" ]
then
echo "Numero $2 d'utilisateur trouve dans le fichier /etc/passwd"
echo $ligne
else
echo "Aucun numero d'utilisateur trouve dans le fichier /etc/passwd"
fi
fichier=$1
if [ $# = 0 ]
then
echo "Pas de fichiers donnes a $0"
else
test -e $1
echo "Le fichier $fichier est present si 0 est affiche : $?"
fi
test -r $0 -a -x $0 && echo "$0 : fichier lisible et ecrivable"
if test \( -r $0 -a -x $0 \) -o \( -r $1 -a -x $1 \)
then
echo "$0 ou $1 : fichier lisible et ecrivable"
fi
vide=$1
test -s $vide || echo "$vide : fichier vide"
test $vide = vide.txt
if [ $? = 0 ]
then
echo "La variable vide contient le fichier $vide"
fi
[ -d "../shell" ]
if [ $? = 0 ]
then
echo "le repertoire shell existe"
fi
L=25
l=7
test "$L" -eq 25 && echo -n "L=25 "
test "$l" -ne 10 && echo -n "l<>10 "
test "$l" -lt 10 && echo -n "l<10 "
test "$L" -ge 15 && echo -n "L>15 "
test "$l" -le 10 && echo -n "l<=7 "
test "$L" -ge 10 && echo -n "L>=26 "
if [ -z "$mathieu" ]
then
echo "la variable mathieu est vide"
fi
if [ -n "$L" ]
then
echo "la variable L est non vide"
fi
( [ -n "$l" ] && echo "la variable l est non vide" ) || echo "la variable
l est vide"
Sources