next up previous contents index
Next: Utilisation de while Up: Programmation du shell Previous: Les scripts shell

Passons aux choses sérieuses

Voici ce que peut contenir un simple script shell. Ce script montre entre autres comment lire les arguments passés par l'utilisateur à la suite du script, sélectionner les arguments à traiter, redéfinir les arguments si il n'y en a pas qui ont été passés par l'utilisateur, afficher une variable dont le contenu a été définit par le script, lire une entrée clavier et l'affecter à une variable, utiliser les différentes variables spécialement définies par le shell, qui contiennent des informations sur les programmes ou sur les utilisateurs...

#!/bin/sh


# Exemples de programmation du shell.
# Pour plus d'informations, lire la page de manuel de bash (76 pages !).


echo Exemples de programmation du shell...
echo "Utilisation : simple.sh <fichier> <argument>"


#--------------------#
# lire les arguments #
#--------------------#


echo nom du script : $0
echo argument 1 : $1
echo argument 2 : $2
echo tous les arguments : $*
echo tous les arguments sous forme separee : $@
echo Il y a en tout $# arguments


#-------------------------#
# Redefinir les arguments #
#-------------------------#


a=1
b=2
c=3
d=4
e=5

set a b c d e

echo "Et maintenant, apres le passage de set..."
echo argument 1 : $1
echo argument 2 : $2
echo argument 3 : $3
echo "Tous les arguments : $* ($# arguments)"

shift

echo
echo "Et maintenant, apres le passage de shift..."

echo "Tous les arguments : $* ($# arguments)"
echo "\$2 devient \$1, \$3 devient \$2..."

set a b c d e

echo
echo "On refait un petit cout de set"
echo "Tous les arguments : $* ($# arguments)"

shift 3

echo
echo "Et maintenant, apres le passage de shift 3..."

echo "Tous les arguments : $* ($# arguments)"
echo "\$4 devient \$1, \$5 devient \$2..."


#--------------#
# echo et read #
#--------------#


echo -n "Entrer deux chaines de caracteres : "
read moi toi
echo "Vous avez saisi : moi=$moi toi=$toi"
echo "Longeur du contenu de \"moi\" : ${#moi}"


# nb: pas d'espace !
moi=10
echo $moi


echo derniere commande executee par le shell : $?
echo no. de processus du shell : $$
echo PID de la derniere commande executee en tache de fond : $!


echo "Fin du programme !"
echo "Vous me devez \$20 !...Non, je blague"

exit 0 # Valeur de retour du script (contenu dans la variable '$?'
       # a la fin de l'execution du script).

# Il est de bon ton de retourner la valeur 1 en cas d'abandon
# du a une erreur.



 

MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.