Du shell au Script shell .. TD GMSI24 #Warmup
Maintenant que Said et Momo sont devenus les reines du #Bash
Entrainez-vous avec les exercices suivants . Devant certains exercices cous avez un petit cours à lire avant (pour certains en PDF)
Création d’un premier Script
On passe par la commande touch ou par un éditeur pour créer le script
touch monscript.sh ou nano monscript.sh
J’ai donné ici l’extension .sh à monscript. On le fait souvent par convention pour indiquer que c’est un script shell, mais ce n’est pas obligatoire. Certains scripts shell n’ont d’ailleurs pas d’extension du tout.Il pourrait s’appeler monscript
La première ligne du script commence par le “sha-bang.”Il sert à dire quel shell on va utiliser .il permet de charger le bon shell mais il n’est pas obligatoire..si il n’est pas présent le shell de l’utilisateur courant sera utilisé.
#! <---Ca c'est le sha-bang on aura donc en début de script bash:
#!/bin/bash
Par convention et bon sens on va ajouter des commentaires dans le script. Ce sont des lignes qui ne seront pas exécutées mais qui permettent d’expliquer ce que fait votre script.
Tous les commentaires commencent par un #
#!/bin/bash # Affichage du répertoire courant pwd
Ensuite il faut enregistrer le script et lui donner des droits d’execution. Avec la commande :
chmod +x monscript.sh
il passera donc en – rwx r-x r-x au niveau de la permission
Et enfin on l’exécute avec ./
./monscript.sh
Exo1 :
Dans un script, vous allez compter le nombre de commande qui commencent par K ET par C en bash .
Vous avez le droit au Man mais pas ChatGPT !!
Me montrer le résultat
Exo Affichage à l’écran
1. Exécutez la commande echo qui permet d’afficher le texte suivant à l’écran :
Les GMSI24 sauf Houssam sont les meilleurs
oui, je le pense aussi..
2. A l’aide de la commande echo, affichez la liste de caractères suivants:
& ~ # ( ) | \ ^@ $ * ! ;
3. Quel est le résultat affiché par les lignes de commandes suivantes:
echo pwd
echo `pwd`
echo "il ya `ls | wc -l` fichiers dans `pwd`"
echo "`whoami`, nous sommes le `date '+%d/%m/%y'`"
echo "$(whoami), nous sommes le $(date) "
Caractères spéciaux du shell
Caractères | sh (Bourne) | ksh 88 | bash | Signification |
espacetabulationsaut de ligne | oui | oui | oui | Séparateurs de mots sur la ligne de commande. |
& | oui | oui | oui | Arrière-plan. |
| < << > >> | oui | oui | oui | Tube et redirections. |
>| | non | oui | oui | Écrasement d’un fichier (option noclobber). |
(cmde1;cmde2){cmde1;cmde2} | oui | oui | oui | Regroupement de commandes. |
; | oui | oui | oui | Séparateur de commandes. |
* ? [ ] | oui | oui | oui | Expressions pour noms de fichier et case. |
* ? [ ] | non | oui | oui | Expressions pour la commande de test [[…]]. |
?() +() *()!() @() | non | oui | oui | Expressions pour noms de fichier [[ ]] et case. |
$ et ${ } | oui | oui | oui | Valeur d’une variable. |
`…` | oui | oui | oui | Substitution de commandes. |
$() | non | oui | oui | Substitution de commandes. |
’…’”…”\ | oui | oui | oui | Caractères de protection. |
$(( )) | non | oui | oui | Substitution d’expression arithmétique. |
cmde1 && cmde2cmde1 || cmde2 | oui | oui | oui | Opérateurs logiques du shell. |
# | oui | oui | oui | Commentaire. |
~ | non | oui | oui | Répertoire d’accueil de l’utilisateur. |
Lire PDF tubes de communications
Lire PDF Regroupement de commandes
Lire PDF Processus en arrière plan
L’environnement SHELL
EXO Pré-Requis