Software">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
8 vues56 pages

Introduction au Scripting Shell en Linux

Ce document présente un cours sur la programmation système avec des scripts Shell, abordant des concepts tels que la définition et l'exécution de scripts, l'utilisation de variables, les tests, et les entrées utilisateur. Il inclut également des exercices pratiques pour appliquer les connaissances acquises. Les sections détaillent les permissions, les commentaires, les variables d'environnement, et les opérateurs, fournissant une base solide pour l'automatisation des tâches sous Linux.

Transféré par

baironlivingston
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues56 pages

Introduction au Scripting Shell en Linux

Ce document présente un cours sur la programmation système avec des scripts Shell, abordant des concepts tels que la définition et l'exécution de scripts, l'utilisation de variables, les tests, et les entrées utilisateur. Il inclut également des exercices pratiques pour appliquer les connaissances acquises. Les sections détaillent les permissions, les commentaires, les variables d'environnement, et les opérateurs, fournissant une base solide pour l'automatisation des tâches sous Linux.

Transféré par

baironlivingston
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Programmation Système

(Script Shell) L3 IRT


Franck ADJEGAN
[Link]@[Link]
+22965464376

Janvier 2025
Ce que vous allez apprendre pendant
le cours
 • Qu’est-ce qu’un script ?
 • Les composants principaux d’un script.
 • Comment utiliser des variables.
 • De quelle manière peut-on effectuer des tests et des prises de
décision.
 • Comment donner des arguments à votre script.
 • Comment permettre à l’utilisateur de rentrer des données qui vont
pouvoir être utilisées par le script.
Qu’est ce qu’un script

 Une série de commandes définies dans un fichier pour l’automatisation


d’une tâche donnée
 Ces commandes sont exécutées les unes après les autres par un
interpréteur (le shell dans notre cas)
 Tout ce qui est réalisable en ligne de commande peut être inclus dans un
script
 Le scripting est une méthode pour l’automatisation de tâches
Cas d’ Utilisation

 maintenance quotidienne d’un système


 sauvegarde hebdomadaire de fichiers vers un serveur
 planification de tâches répétitives et/ou fastidieuses
 extraction de données utiles de fichiers volumineux
Comment Rendre un script
Exécutable
 Pour pouvoir exécuter un fichier de script, il faut définir dessus les droits de
manière à ce que celui-ci devienne exécutable .

 Utilisation de chmod (change mode)


Syntaxe :
chmod a+x nom_fichier

chmod a+x permet de rajouter le droit d’exécution à tous les utilisateurs pour le
fichier nom_fichier
 Exemple :
chmod a+x [Link]
Comment Rendre un script
Exécutable (2)
 Les catégories d’utilisateurs
u propriétaire (user)
g groupe (group)
o les autres (others)
a tous (all)

 Les permissions
r (4) : autorisation de lecture
w (2) : autorisation d'écriture
x (1) : autorisation d'exécution.

 Exemple :
chmod a+x [Link]
Comment Exécuter un script

 Pour exécuter un script, vous avez le choix de, soit d’utiliser le chemin
relatif , soit d’utiliser le chemin absolu
• Chemin relatif : Il faut être dans le dossier du fichier et faire
./nom_fichier
 Exemple ./[Link]

 Chemin absolu : Peut importe là où on se trouve, on précise le chemin


allant de la racine jusqu’au fichier à exécuter
 Exemple : /home/franck/[Link]
en supposant que c’est le chemin absolu vers le fichier
ECRIRE UN SCRIPT

 Editeur
On peut utiliser n’importe quel éditeur disponible dans l’environnement
Exemple : gedit, emacs, vi, vim, nano sous Linux ; notepad++ sous windows

 Le Shebang
C’est la première ligne qu’on trouve dans un fichier de script shell
#!/bin/bash
Il commence par un « # » (ce qui correspond la plupart du temps à des
commentaires) puis d’un « ! » et enfin le chemin menant au programme Bash
Shell
ECRIRE UN SCRIPT

 Le Shebang
On y indique le chemin de l’interpréteur qui va lire le script.
Il en existe d’autres. Ci-dessous, quelques exemples :
• #!/bin/sh
• #!/bin/csh
• #!/bin/zsh
• #!/usr/bin/python
Les Commentaires

 Les commentaires permettent de rendre des parties du contenu du fichier de script non
interprétées par l’interpréteur
 Une ligne commentée commence par le caractère #
 On peut aussi commenter la fin d‘une ligne
 Mais il n‘existe aucun moyen natif pour commenter plusieurs lignes à la fois. Mais il
existe des solutions.
 Ainsi, en dehors du shebang, toute ligne commençant par # ne sera pas interprétée

#!/bin/bash
echo "Bonjour tout le monde"
#Ceci est un commentaire
echo "Merci pour l’explication" #Ceci ne sera pas interprété
Les Variables

 Ce sont des espaces de stockage qui possèdent un nom


Il existe deux catégories de variables : Les variables définies par l’utilisateur et les
variables prédéfinies (variables prépositionnées, variables d’environnement, etc.)

 Variables définies par l’utilisateur


Le nom d‘une variable est un identificateur
• Caractères alpha-numériques
• Ne peut commencer par un chiffre
• Peut contenir le caractère sous-tiret (_)
 Le nom d‘une variable est sensible à la casse : une distinction est faite entre majuscule
et minuscule
 Par convention, il est en MAJUSCULE
Les Variables

 Syntaxe de déclaration
NOM_DE_LA_VARIABLE="valeur"
Nota : Il ne faut pas mettre d'espace entre le nom de la variable, le signe = et "

 Syntaxe d’utilisation
Pour utiliser le contenu d’une variable, il faut faire précéder le nom de la variable
par un $

Un exemple illustratif se trouve sur la page suivante


Les Variables

#!/bin/bash
PRENOM= " Franck"
NOM= " ADJEGAN"
echo "Bonjour $PRENOM $NOM et bienvenue au cours de script shell"

#En supposant que le fichier du code ci-dessus se nome [Link], et qu’on a


déjà défini les droits d’accès appropriés dessus, son exécution se fera comme
suit :
./[Link]
#ce qui donnera comme résultat :
Bonjour Franck ADJEGAN et bienvenue au cours de script shell
Les Variables

 Nota : Dans certains cas, on est obligé d’utiliser les accolades pour entourer le nom
de la variable
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
AGE="18"
echo "Bonjour $PRENOM ${NOM}, vous avez ${AGE}ans"

./[Link]
Bonjour Luc SAGBO, vous avez 18ans

Nota : Ici, si on ne mettait pas les accolades, on aurait de problèmes dans l’interprétation de $NOM,
à cause de la virgule qui est collée au nom de la variable. De même on n’aurait pas pu afficher l'âge
avec la chaine ans collée à la variable désignant l'âge.
Les Variables

 Assigner les sorties de commandes à une variable


Il est tout a fait possible d'assigner la sortie standard d'une commande à une variable en la mettant
entre parenthèses
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
MACHINE=$(hostname)
echo "Bonjour $PRENOM $NOM et bienvenu sur la machine ${MACHINE}. "

Une autre syntaxe est également possible suivant le script et elle utilise le symbole ` (alt gr + 7) à
la place du $() pour exécuter une commande.
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
MACHINE=`hostname`
echo "Bonjour $PRENOM $NOM et bienvenu sur la machine ${MACHINE}."
LES VARIABLES SPÉCIFIQUES :
PRÉPOSITIONNÉES
 Quelques variables spécifiques au shell qui permettent de récupérer des informations sur les
arguments passés ou sur l'exécution en cours.
• $0 indique le nom d'une commande (nom du shell ou du script shell en cours d’exécutionou)
• $# indique le nombre de paramètres positionnels d'une commande (nombre total
d'arguments passés)
• $$ indique le numéro de processus du shell courant (PID : Process ID)
• $? Code qui indique un résultat lié au déroulement de la dernière commande exécutée
• 0 : Pas d'erreur. Autre valeur : cas contraire.
• $* ensemble des paramètres (arguments) d'une commande (sous forme de liste séparée par
le l'IFS)
• $@ ensemble des paramètres (arguments) d'une commande (sous forme de liste séparée par
des espaces)
• $1 à $9 représentent des paramètres positionnels (les arguments passés à une commande ou
à un script).
LES VARIABLES D'ENVIRONNEMENT

 PATH représente les différents chemins où se trouvent les exécutables.


 PS1 affiche la structure du prompt principal, ou celui par défaut.
 HOME contient le répertoire de base de l'utilisateur.
 SHELL indique le shell utilisé par l'utilisateur.
 LANG indique la langue utilisée.
 TEMP contient le chemin où les processus stockent les fichiers temporaires.
 OSTYPE indique le type de système d'exploitation.
 LD_LIBRARY_PATH contient les différents chemins où se trouvent les
bibliothèques.
 USER indique l'utilisateur connecté à la session courante.
 EDITOR indique l'éditeur utilisé par défaut au sein de la session courante.
LES VARIABLES D'ENVIRONNEMENT

 MANPATH contient l'ensemble des répertoires où se situent les fichiers MAN.


 MANPATH indique le nom du fichier contenant l'historique des commandes enregistrées.
 HISTSIZE valeur limitant le nombre de commandes enregistrées dans le fichier historique.
 PWD contient le chemin du répertoire actuel.

Nota : La liste des variables spéciales et celles d’environnement présentées ici n’est que
partielle. Pour connaitre par exemple toutes les variables d’environnement, il suffit de taper la
commande env dans la console.
Vous êtes aussi priés de tester chacune des variables présentées sur les pages 16 à 18 pour
mieux en comprendre l’utilité.
Pour tester une des variable, il suffit de faire
echo $NOM_VARIABLE
LES CONSTANTES : VARIABLES NON
MODIFIABLES
 La notion de constante n’existe pas vraiment en Shell script.
Mais comme une constante n’est qu’une variable non modifiable, il y a la
possibilité d’utiliser le mot clé readonly pour rendre une variable non
modifiable
 Syntaxe : readonly NOM_CONSTANTE="Valeur"
On vient donc de définir une variable comme une constante.
Exercice d’ application

 Creez un script Shell qui permettra de

1-Creez un fichier [Link] dans le répertoire Documents


2-Inserez votre Nom et Prénom dans le fichier [Link] en utilisant des
variables en en leur assignant des valeurs.
3-Copier le fichier vers le répertoire Documents/TEST que vous aurez creer
dans le répertoire tout en renommant le fichier en ajoutant la date du jour.
4-Afficher le contenu du fichier
5- Effectuer quelques contrôles d’ erreur si necessaire
LES TESTS

 Lorsque vous tapez une commande, vous pouvez prendre le temps


d'analyser la réponse du système et prendre une décision en fonction de
cette réponse.
 Il est tout à fait possible d'effectuer les mêmes étapes avec le scripting
Shell grâce aux tests. Il existe deux formes de tests.
 La syntaxe de la première forme, à base de crochets, est la suivante :
[ voici-la-condition-du-test-a-vérifier ]
 Il est important de respecter les espaces après le symbole [ mais
également avant le ].
LES TESTS

 Exemple 1 : Vérifier si le fichier /home/luc/test existe


[ -e /home/luc/test ]
• La commande retourne la valeur 0 (True) si le fichier existe
• La commande retourne la valeur 1 (False) si le fichier n'existe pas
 Exemple 2 : Vérifier si la chaine contenue dans la variable NOM est vide ou non
[ -z NOM ]
• La commande retourne la valeur 0 (True) si la chaine est vide
• La commande retourne la valeur 1 (False) si la chaine n’est pas vide
 Nota : Pour connaitre la valeur retournée par l’exécution d’une commande, il
faut lire le contenu de la variable spéciale $? Après avoir exécuté la commande
LES TESTS

 Opérateurs principaux pour les tests


• -e : 0 (True) si le fichier existe
• -d : 0 (True) s'il s'agit d'un dossier
• -r : 0 (True) si le fichier est disponible en lecture pour l'utilisateur
• -s : 0 (True) si le fichier existe et n'est pas vide
• -w : 0 (True) si le fichier est disponible en écriture pour l'utilisateur
• -x : 0 (True) si le fichier est disponible en exécution pour l'utilisateur
• -z : 0 si la chaîne de caractère est vide et 1 si elle ne l'est pas
• –n : 1 si la chaîne de caractère est vide et 0 si elle ne l'est pas
 Nota : Les deux dernières options s’utilisent sur les chaines de caractères
LES TESTS

 Comparer deux chaînes : Soit le script shell [Link] dont le code est ci
dessous
#!/bin/bash
PRENOM='Luc'
NOM='SAGBO'
[ $PRENOM = $NOM ]
echo $?

./[Link]
1
 Nota : Avec =, le script nous renvoie 0 si les deux chaînes sont identiques et 1 si
elles ne le sont pas
LES TESTS

 Comparer deux chaînes


#!/bin/bash
PRENOM='Luc'
NOM='SAGBO'
[ $PRENOM != $NOM ]
echo $?

./[Link]
0

 Nota : Avec !=, le script nous renvoie 0 si les deux chaînes ne sont pas identiques et 1
si elles le sont
LES OPÉRATEURS

 Les opérateurs permettent de faire des opérations sur les données et les
valeurs.
❑ Opérateurs arithmétiques

 Nota : on peut aussi utiliser l’opérateur expr pour évaluer une


expression.
 Exemple :
echo `expr 2 + 2 `
LES OPÉRATEURS

❑ Opérateurs logiques

❑ Opérateurs de comparaison
LES OPÉRATEURS

❑Opérateurs d’affectation, d’incrémentation et associatifs


LES OPÉRATEURS
ENTRÉE UTILISATEUR

 La commande read permet d'accepter les données venant de l’entrée standard (STDIN).
L’utilisateur peut dont entrer des données à partir du clavier.
 Syntaxe d’utilisation
La syntaxe de base est la suivante : read NOM_VARIABLE

Lorsqu’on souhaite afficher un message indicatif avant la lecture, on peut utiliser l’option –p
read –p "Le message indicatif : " NOM_VARIABLE

 Exemple :
read –p "Entrez votre nom : " NOM
Ce qui est équivalent à :
echo "Entrez votre nom : "
read NOM
ENTRÉE UTILISATEUR

 On peut lire dans plusieurs variables à la fois avec une seule instruction
read
Exemple : read NOM PRENOM
 Nota : lorsque à la saisie, l’utilisateur entre :
- moins de valeurs que de variables, les dernières variables sont
vides
- plus de valeurs que de variables, la dernière variable prend le
reste des valeurs, séparateurs compris
Le séparateur par défaut est soit le caractère espace, soit tabulation (\t) ou
soit saut de ligne (\n). Mais on peut définir un autre séparateur.
On change pour cela la valeur par défaut de la variable prédéfinie IFS
ENTRÉE UTILISATEUR

 Exemple :
franck@osboxes:~$ OLDIFS="$IFS"
franck@osboxes:~$ IFS="|"
franck@osboxes:~$ read A B C
azerty|qwerty|papou
franck@osboxes:~$ echo $B
qwerty

franck@osboxes:~$ IFS="$OLDIFS"
franck@osboxes:~$ read A B C
azerty|qwerty|papou
franck@osboxes:~$ echo $A
azerty|qwerty|papou
ENTRÉE UTILISATEUR

 On a également la possibilité d’utiliser le commande read pour lire une


donnée sans l’afficher lors de la saisie. Ceci peut-être très utile pour la
saisie de mot de passe. Pour cela on ajoute l’option –s à l’option –p.
Nota : avec l'option -s, il est recommandé d'ajouter la commande echo
pour afficher un saut de ligne.

franck@osboxes:~$ read -p “Login ? " LOGIN


franck@osboxes:~$ read -s -p “Mot de Passe ? " PASSWD; echo
LES STRUCTURE DE CONTRÔLE

 Il y a deux catégories de structures de contrôle :


 Les Structure conditionnelles
o La structure if avec toutes ses variantes
o La structure case

 Les structures répétitives ou itératives


o La boucle for
o La boucle while
o La boucle until
LES STRUCTURE DE CONTRÔLE
 L es conditions : le cas de if
2eME
1er Cas
Cas 3eme
Cas

if [ condition-est-vraie if [ condition1-est-vraie ]
] then
if [ condition-est-vraie ] command1
then
then
command1 elif [ condition2-est-
command1 vraie ]
command2
else
command2 then
fi command2
fi else
command3
fi
LES STRUCTURE DE CONTRÔLE

 Exercice :
Créer un script qui demande à l'utilisateur de saisir une note comprise
entre 0 et 20 et qui affiche un message en fonction de cette note :
 "très bien" si la note est entre 16 et 20, 16 inclus ;
 "bien" lorsqu'elle est entre 14 et 16, 16 exclue ;
 "assez bien" si la note est entre 12 et 14, 14 exclue ;
 "passable" si la note est entre 10 et 12 ; 12 exclue
 "insuffisant" si la note est inférieur à 10.
LES STRUCTURE DE CONTRÔLE
 L es conditions : le cas de case
Exempl
Syntax e
Syntax e
e

case <valeur> in case "$VARIABLE" in


case "$1" in
[PATTERN [I PATTERN] ) premier_cas) start)
<liste d'instructions> commande1 `/etc/init.d/apache2 start`
;;
;;] ;;
stop)
esac deuxieme_cas) kill $(cat /var/run/apache2/[Link])
commande2 ;;
*)
;;
echo « Indiquez start ou stop«
troisieme_cas) exit 1
commande3 ;;
;; esac
esa
LES STRUCTURE DE CONTRÔLE

 Les Boucles : la boucle for


Syntaxe d’utilisation

for VARIABLE in OBJET1 OBJET2 OBJET3 OBJETn


do
command1
command2
done
LES STRUCTURE DE CONTRÔLE

 Les Boucles : la boucle for


Exemple :
#!/bin/bash #!/bin/bash

for CHIFFRE in 10 11 12 13 for CHIFFRE in {10..13


do do
echo "Chiffre : $CHIFFRE" echo "Chiffre : $CHIFFRE"
Done Done

Exercice
 Créer un script qui prend un nombre en saisie et l'élève à sa propre puissance.
C'est un peu le même principe que la factorielle mais cette fois, l'usage de la
boucle for est imposé
LES STRUCTURE DE CONTRÔLE

 Les Boucles : la boucle While :

Syntaxe d’utilisation
while [ la-condition-est-vraie ]
do
command1
command2
done
LES STRUCTURE DE CONTRÔLE

 Les Boucles : la boucle While :


Exemple :
#!/bin/bash
while [ -z $PRENOM ]
do
read –p "Quel est votre prenom ?" PRENOM
done
echo "Votre prenom est $PRENOM"

Exercice
Création d'un jeu qui permet à l'utilisateur de deviner un chiffre généré par le script entre 1 et 50. A
chaque fois que l'utilisateur entre un chiffre, le script lui indique si le chiffre à trouver est supérieur ou
inférieur à celui qu'il a entré, etc.
LES STRUCTURE DE CONTRÔLE

 Les Boucles : la boucle Until :


La boucle until fait la même chose que la boucle while, à la différence qu’ici
la boucle est exécutée tant que la condition est fausse (contrairement à la
boucle while)
#!/bin/bash
until [ -n "$PRENOM" ]
do
read –p "Quel est votre prenom ?" PRENOM
done
echo "Votre prenom est $PRENOM"
LES MENUS : BOUCLE «SELECT»

 La commande select est une structure de contrôle de type itérative qui


est utilisée pour réaliser un menu.
 Syntaxe :
select nom_var in item1 item2 item3 ... itemn
do
commandes
done
LES MENUS : BOUCLE «SELECT»
 Exemple :
PS3="Votre choix : "
select texte in "- Traitement 1" "- Traitement 2" "- Quitter"
do
echo "Votre choix est $REPLY : $texte"
case $REPLY in
1)
echo "Lancement traitement 1"
;;
2)
echo "Lancement traitement 2"
;;
3)
echo "Au revoir"
exit 0
;;
*)
echo "Choix incorrect : 1 - 2 - 3"
;;
esac
LES MENUS : BOUCLE «SELECT»

 Nota : La liste des items sera affichée à l'écran à chaque tour de


boucle et chaque item est indicé automatiquement.
 • La variable lib_var sera initialisée avec l'item correspondant au choix
de l'utilisateur.
 • La commande select s’accompagne de l’utilisation de deux autres
variables prédéfinies :
❖ La variable PS3 qui représente le prompt utilisé pour la
saisie du choix de l'utilisateur.
❖ La variable REPLY qui contient l'indice de l'item
sélectionné.
TRAVAUX PRATIQUES

Exercice : Gestion de Menu en Shell


Écrivez un script Shell qui propose un menu interactif permettant à l'utilisateur de :

Afficher la date et l'heure actuelles.


Afficher le contenu d'un répertoire choisi par l'utilisateur.
Vérifier si un nombre donné est pair ou impair.
Deviner un nombre aléatoire entre 1 et 10.
Quitter le programme.
Le script doit :

Utiliser if, elif, else pour gérer les conditions.


Utiliser case pour gérer les choix du menu.
Utiliser while pour afficher le menu en boucle jusqu'à ce que l'utilisateur choisisse de quitter.
Utiliser for pour afficher le contenu d'un répertoire.
Vérifier si l'entrée utilisateur est correcte avant de poursuivre.
LES FONCTIONS

 Une fonction est un block de code désigné sous un nom et spécialisé


dans un traitement. Les fonctions présentent plusieurs avantages, à
savoir :
 écrire un block de code une fois, et le réutiliser autant de
fois que nécessaire
 avoir du code modulaire et aéré
 faire facilement la maintenance du code

Il existe deux syntaxe de définition d’une fonction. Les deux sont


présentées sur la page qui suit :
LES FONCTIONS

 #utilisation du mot clé "function"


function nom_de_la_fonction(){
command1
command2
}
#non utilisation du mot clé "function"
nom_de_la_fonction(){
command1
command2
}
LES FONCTIONS
 Appel d’une fonction
On se sert de son nom sans toutefois le faire suivre des parenthèses
#!/bin/bash
function check_server() {
ping -c 1 [Link] #on suppose que l’IP du serveur est [Link]
if [ $? -eq 0 ] then ;
echo "Le serveur est joignable"
else
echo "Le serveur n’est pas joignable"
fi
}
check_server
#ceci est l’appel de la fonction

PING [Link] ([Link]) 56(84) bytes of data.


64 bytes from [Link]: icmp_seq=1 ttl=63 time=2.51 ms
--- [Link] ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.508/2.508/2.508/0.000 ms
serveur joignable
LES FONCTIONS
 Passage de paramètres à une fonction
les fonctions peuvent accepter des paramètres comme d’ailleurs c’est le cas avec les
scripts en général.
Les N paramètres sont accessibles à travers les variables spéciales $1, $2, …, $n.
Naturellement, $0 fait référence au nom du script lancé.
#!/bin/bash
function check_server() {
ping -c $2 $1 #ici $2 représente le nombre de paquets à lancer, $1 représente l’adresse IP à atteindre
if [ $? -eq 0 ] then ;
echo "Le serveur est joignable"
else
echo "Le serveur n’est pas joignable"
fi
}
LES FONCTIONS
 Variables Locales et Globales

Les variables locales ne sont visibles et accessibles qu’à l’intérieur de la


fonction.
Par contre une variable globale est accessible à l’intérieur d’une fonction.
Mais pour cela il faudra la déclarer avant la fonction.
On peut néanmoins déclarer une variable globale dans une fonction. Dans ce
cas, elle ne sera accessible qu’une fois la fonction appelée.
Pour déclarer une variable locale on doit précéder le nom de la variable du
mot clé local
LES FONCTIONS
 Variables Locales et Globales : Exemple

#!/bin/bash
VAR1="Globale1" En exécutant le code, on se rend compte
que toutes les variables sont disponibles
function test_variables() { dans la fonction. Mais une fois en dehors de
echo "La variable $VAR1 est accessible" la fonction, la variable $VAR3 n’est plus
VAR2="Globale2" accessible. Je vous propose de tester ce
code et de voir le résultat.
local VAR3="Locale1"
echo "variables $VAR2 et $VAR3"
}
test_variables
echo "les variables $VAR1 et $VAR2 et $VAR3"
LES FONCTIONS

 Variables Locales et Globales :


Exemple

Pour lancer une fonction qui est définie dans Une fois que le fichier est chargé, on peut
un appeler la fonction en tapant son nom suivi
de ses arguments éventuels.
fichier de script shell à partir d'une ligne de
$ source mon_script.sh
commande (prompt), on doit d'abord
charger le fichier de script en utilisant la $ ma_fonction argument1 argument2
commande source ou . (point). Voici la
syntaxe générale :
 Nota : faire attention au chemin d’accès
 $ source nom_du_fichier.sh au script
ou
 $ . nom_du_fichier.sh
LES WILDCARDS : CARACTÈRES
GÉNÉRIQUES

Un wildcard est un caractère (ou une chaîne de caractères) générique ou de


substitution qui est utilisé dans une expression pour prendre un certain
nombre de valeurs
On les utilise avec la plupart des commandes, mais très souvent avec les
commandes ls, mkdir et rm
Caractères spéciaux : ? et *
? Désigne exactement un seul caractère

 Exemple
$ echo fichier?.txt #fichiers [Link], [Link], [Link], si ces
fichiers existent dans le dossier courant
$echo t?t?.txt #fichiers [Link], [Link], [Link], si des fichiers comme ça
existent dans le dossier courant
LES WILDCARDS : CARACTÈRES
GÉNÉRIQUES

 * Désigne n’importe quel caractère ou suite de caractères, y compris le


caractère vide
Exemple
$ echo *t* #peut donner table, [Link], [Link], toise, si ces fichiers ou
dossiers existent
$ echo t*.txt #tous les fichiers txt commençant par t, s’ils existent

Nota : On ne peut pas utiliser ? ou * au début pour retrouver les fichiers


préfixés par le caractère point (.)
Il faut le spécifier explicitement avant de mettre ? ou *
Exemple
$ echo .*
LES WILDCARDS : CARACTÈRES
GÉNÉRIQUES

Les classes de caractères :

Vous aimerez peut-être aussi