Académique Documents
Professionnel Documents
Culture Documents
Système d’Exploitation
UNIX
Programmation Shell:
Tableaux et Fonctions
A.ROUDANE
Les Tableaux
Exemple 1:
#!/bin/bash
nom=(Rabat Casa Settat Marrakech Fès)
echo ${nom[*]} #permet d’afficher tous les éléments
echo ${nom[@]}
echo "premiere case: ${nom[0]}" "deuxieme case: ${nom[1]}"
echo "Ce tableau comporte ${#nom[*]} cases."
Les Tableaux
Exemple 2:
Les Fonctions
Exemples:
#définition #définition
Affiche () Affiche ()
{ {
read –p ‘entrez votre nom’ nom echo " bonjour $1 "
echo "bonjour $nom" }
}
# Appel de la fonction
#Appel de la fonction read –p ‘entrez votre nom’ nom
Affiche Affiche $nom
Paramètre de la
fonction
Les Fonctions
Exemples:
#definition
Affiche ()
{
echo "bonjour $1"
Paramètre de la
}
fonction
#Appel de la fonction
Affiche $1
Affiche $2
Paramètres du
Script
Les Fonctions
Exemples:
Function affiche
{
let c=$1+$3
echo $c $ ./script.sh 12 16 32
}
48
#Appel de la fonction
Affiche $3 $1 $2
$1 $2 $3
32 12 16
Les Fonctions
return n
Renvoie une valeur de retour pour la fonction Shell.
exit n
Provoque l’arrêt du Shell courant avec un code retour de n si celui-ci est
spécifié. S’il n’est pas spécifié, il s’agira de la valeur de retour de la
dernière commande exécutée.
Les Fonctions: Retour de
fonction
#!/bin/bash
# Fonction qui teste la parité d'une valeur
pair_impair()
{
if [ `expr $1 % 2` -eq 0 ] #let c=$1%2; if [ $c –eq 0 ]
then
return 0
else
return 1
fi $./script.sh 5 78 90 12 3
} Impair
# Pour chaque nombre passé au programme Pair
for nb in $* Pair
do Pair
# Vérification de la parité de ce nombre impair
if pair_impair $nb
then
echo "$nb est pair"
else
echo "$nb est impair "
fi
done
Les Fonctions: Valeur renvoyée
#!/bin/sh
# Fonction qui renvoie le carré du nombre qu'elle reçoit
carre()
{
# Affichage du carré du nombre reçu
expr $1 \* $1
}
Exercice1: Calculatrice
Créer un script dans lequel deux nombres opérandes et un signe opérateur (+-*/)
devront être donnés en paramètres, ou saisis. Le script doit réaliser l'opération
souhaitée.
Exemple :
[ ~] ./calculette.sh 7 + 4
Le calcul devra être fait à l'aide d'une fonction calcul ().
Exercice 2: TestUser
Créer un script qui vous propose le menu suivant :
1 - Vérifier l'existence d'un utilisateur
2 - Connaître l'UID d'un utilisateur
q - Quitter
L'utilisateur devra être saisi, à l'aide d'une fonction. Son existence devra être
vérifiée à l'aide d'une autre fonction et son UID doit être affiché par une 3éme
Fonction.