Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:script_shell [Le 12/02/2024, 14:20] 81.247.240.195 ancienne révision (Le 19/09/2023, 14:21) restaurée pour vandalisme |
tutoriel:script_shell [Le 02/08/2024, 17:13] (Version actuelle) 194.156.203.71 [L'arithmétique] correction attribution variable |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
====== Introduction aux scripts shell ====== | ====== Introduction aux scripts shell ====== | ||
- | Un script shell permet d'automatiser une série d'opérations. Il se présente sous la forme d'un fichier contenant une ou plusieurs commandes qui seront exécutées de manière séquentielle. Fantastique. | + | Un script shell permet d'automatiser une série d'opérations. Il se présente sous la forme d'un fichier contenant une ou plusieurs commandes qui seront exécutées de manière séquentielle. |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 252: | Ligne 252: | ||
echo "Bien joué !" | echo "Bien joué !" | ||
else | else | ||
- | echo "Non mais quand même !!! SAPERLIPOPETTE C'ÉTAIT $1 ET NON PAS $Reslt ESPECE DE NOUILLE !!!" | + | echo "Non mais quand même !!! C'ÉTAIT $1 ET NON PAS $Reslt PETIT FRIPON !!!" |
- | sleep 3 # Juste pour le fun du script qui enrage ;-p | + | sleep 3 # Juste pour le fun du script qui rage ;-p |
- | echo "Désolé, je te bannis de ubuntu-fr.org ! Et schbim !! Dommage tu ne peux rien contre moi !!!" | + | echo "Donc je te bannis de ubuntu-fr.org ! Et toc !! Tu ne peux rien contre moi !!!" |
exit 1 | exit 1 | ||
fi | fi | ||
Ligne 266: | Ligne 266: | ||
Exemple: besoin de définir des plages de valeurs (1 à 500 puis 501 à 1000 puis 1001 à 1500…) | Exemple: besoin de définir des plages de valeurs (1 à 500 puis 501 à 1000 puis 1001 à 1500…) | ||
<code bash> | <code bash> | ||
- | id_per_step = 500 | + | id_per_step=500 |
for (( i=0; i<8; i++ )); do | for (( i=0; i<8; i++ )); do | ||
(( min_step_id = 1 + $i * $id_per_step )) | (( min_step_id = 1 + $i * $id_per_step )) | ||
Ligne 385: | Ligne 385: | ||
ls -la | ls -la | ||
elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then | elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then | ||
- | echo "Ok, Aurevoir! " | + | echo "Ok, bye! " |
else | else | ||
echo "Il faut taper Y ou N!! Pas $ouinon" | echo "Il faut taper Y ou N!! Pas $ouinon" | ||
Ligne 413: | Ligne 413: | ||
Exemple : | Exemple : | ||
- | créer le répertoire titi s'il n' existe pas | + | créer le répertoire toto s'il n' existe pas |
<code bash> | <code bash> | ||
- | [ ! -d /tmp/titi ] && mkdir /tmp/titi | + | [ ! -d /tmp/toto ] && mkdir /tmp/toto |
- | [ -d /tmp/titi ] || mkdir /tmp/titi | + | [ -d /tmp/toto ] || mkdir /tmp/toto |
- | test ! -d /tmp/titi && mkdir /tmp/titi | + | test ! -d /tmp/toto && mkdir /tmp/toto |
- | rm -rf /tmp/titi;mkdir /tmp/titi | + | rm -rf /tmp/toto;mkdir /tmp/toto |
</code> | </code> | ||
Ligne 535: | Ligne 535: | ||
| | ||
case "$on" in | case "$on" in | ||
- | oui | o | O | Oui | OUI ) echo "Allez boire un Thé !";; | + | oui | o | O | Oui | OUI ) echo "Allez faire du café !";; |
non | n | N | Non | NON ) echo "Programmez !";; | non | n | N | Non | NON ) echo "Programmez !";; | ||
* ) echo "Ah bon ?";; | * ) echo "Ah bon ?";; | ||
Ligne 547: | Ligne 547: | ||
<code bash> | <code bash> | ||
case "$truc....." in | case "$truc....." in | ||
- | [nN] *) echo "Blablablabla...";; | + | [nN] *) echo "Blablabla...";; |
n* | N* ) echo "Bla....";; | n* | N* ) echo "Bla....";; | ||
</code> | </code> | ||
Ligne 732: | Ligne 732: | ||
#favoritefood | #favoritefood | ||
if [ ${LANG:0:2} = "fr" ]; then | if [ ${LANG:0:2} = "fr" ]; then | ||
- | echo "Vous aimez la choucroute !" | + | echo "Vous aimez les moules frites !" |
elif [ ${LANG:0:2} = "en" ]; then | elif [ ${LANG:0:2} = "en" ]; then | ||
- | echo "You love the... raclette !" | + | echo "You love the... pudding !" |
elif [ ${LANG:0:2} = "es" ]; then | elif [ ${LANG:0:2} = "es" ]; then | ||
- | echo "Te gusta el pata negra !" | + | echo "Te gusta el jamón !" |
else | else | ||
echo ":'-(" | echo ":'-(" | ||
Ligne 745: | Ligne 745: | ||
<code bash> | <code bash> | ||
$ ./favoritefood | $ ./favoritefood | ||
- | Vous aimez la choucroute ! | + | Vous aimez les moules frites ! |
$ env LANG=en ./favoritefood | $ env LANG=en ./favoritefood | ||
- | You love the... raclette! | + | You love the... pudding ! |
$ env LANG=es ./favoritefood | $ env LANG=es ./favoritefood | ||
- | Te gusta el pata negra! | + | Te gusta el jamón ! |
$ env LANG=it ./favoritefood | $ env LANG=it ./favoritefood | ||
:'-( | :'-( | ||
Ligne 826: | Ligne 826: | ||
<code bash> | <code bash> | ||
- | echo -e '\033[1;30;47m titi \033[0;32m est sur \033[1;33m un bateau \033[0m' | + | echo -e '\033[1;30;47m toto \033[0;32m est sur \033[1;33m un bateau \033[0m' |
</code> | </code> | ||
Ligne 877: | Ligne 877: | ||
Exemple : | Exemple : | ||
supposons que vous ayez une base de données, avec 3 catégories d'enregistrements possibles : | supposons que vous ayez une base de données, avec 3 catégories d'enregistrements possibles : | ||
- | canard bleu, canard blanc, canard rose ayant chacun 30 individus. | + | éléphant bleu, éléphant blanc, éléphant rose ayant chacun 30 individus. |
Votre script doit compter le nombre d'éléphants bleus et blancs. | Votre script doit compter le nombre d'éléphants bleus et blancs. | ||
Deux possibilités s'offrent à vous : | Deux possibilités s'offrent à vous : | ||
- | * calculer le nombre de canard verts + canard violets | + | * calculer le nombre d'éléphants bleus + éléphants blancs |
ou | ou | ||
- | * calculer le nombre total de canard - nombre de canard roses | + | * calculer le nombre total d'éléphants - nombre d'éléphants roses |
Quel algorithme choisissez-vous ? | Quel algorithme choisissez-vous ? | ||
- | Résultat : le premier car dans le deuxième il faut d'abord calculer le nombre total de canard. | + | Résultat : le premier car dans le deuxième il faut d'abord calculer le nombre total d'éléphants, donc un calcul en plus :-P . |
===== Liens ===== | ===== Liens ===== |