From 61cbb16b3756913a81a8d228c54afb938493ab5f Mon Sep 17 00:00:00 2001 From: jerome Date: Sat, 7 Jun 2025 15:32:36 +0200 Subject: set -xv --- exemple01 | 6 +++++- exemple02 | 8 ++++++++ exemple03 | 2 ++ exemple04 | 7 ++----- exemple05 | 11 ++++++++++- exemple07 | 3 --- exemple08 | 3 +++ exemple10 | 24 ++++++++++++++++-------- 8 files changed, 46 insertions(+), 18 deletions(-) diff --git a/exemple01 b/exemple01 index 6ffd42d..3c5c8f8 100755 --- a/exemple01 +++ b/exemple01 @@ -1,4 +1,6 @@ +#!/bin/bash +set -xv ### Affiche Hello World ### echo "Hello World !" @@ -7,6 +9,8 @@ echo "Hello World !" ### Les noms des variables ne peuvent comprendre que des minuscules ou des majuscules, des nombres ou des underscores, mais ne doivent ni commencer par un nombre, ni par un underscore ! message="World" echo "Hello $message !" +message="foo" +echo "Hello ${message}bar" ### Affiche la substitution d'une commande ### echo "Hello $(whoami) !" @@ -26,7 +30,7 @@ echo "tu m'as dit $REPLY" printf "je m'appelle %s et j'ai %d ans\n" bob 10 # il existe aussi des tableaux... -# même si ce n'est pas vraiment le language à choisir dans ce cas (à mon avis) +# même si bash n'est pas vraiment le language à privilégier pour travailler avec des tableaux (à mon avis) T[0]='Hello' T[1]='World' echo ${T[0]} ${T[1]} diff --git a/exemple02 b/exemple02 index 12b68ed..32442fa 100755 --- a/exemple02 +++ b/exemple02 @@ -1,14 +1,22 @@ #/usr/bin/bash +set -xv + # calculs arythmétiques a=2 b=5 # addition +echo $((a+b)) +# passage par une variable c=$((a+b)) echo $c # incrémentation ((c++)) echo $c +# incrémentation variable +i=2 +((c+=i)) +echo $c # entier négatif c=$((a-b)) echo $c diff --git a/exemple03 b/exemple03 index 6c5cf65..6cf65e5 100755 --- a/exemple03 +++ b/exemple03 @@ -1,5 +1,7 @@ #!/usr/bin/bash +set -xv + mot1=hello mot2=World diff --git a/exemple04 b/exemple04 index 570ef16..5f02e0d 100755 --- a/exemple04 +++ b/exemple04 @@ -1,5 +1,7 @@ #!/usr/bin/bash +set -xv + # La variable spéciale $? renvoie le code de sortie de la dernière commande : 0 si la commande s'est bien passée ou différent de 0 si la commande a échoué. # Exemple avec la primitive du shell test @@ -27,11 +29,6 @@ test -d repert && echo "le répertoire existe" || echo "le répertoire n'existe test -d repert || mkdir repert && cd repert pwd cd - -test -d repert && echo "le répertoire existe" || echo "le répertoire n'existe pas" -# repert existe, on ne le créé pas et on se déplace dedans... -test -d repert || mkdir repert && cd repert -pwd -cd - rmdir repert echo diff --git a/exemple05 b/exemple05 index 72ef4f8..eb12557 100755 --- a/exemple05 +++ b/exemple05 @@ -1,5 +1,5 @@ #!/usr/bin/bash -set -x +set -xv # Comparaison if,elif,else,fi avec la primitive test # help if read -p "Entrez un nombre positif ou négatif : " nb @@ -22,6 +22,15 @@ else echo "$nb est positif" fi +# Gestion des erreurs +if [ $# -lt 1 ]; then + echo "$(basename $0) demande un ou plusieurs arguments" >&2 + exit 1 +else + echo "Hello $* !" +fi + + # Avec and (-a) et or (-o) # Pour les besoins de l'exemple : on aurait pu bien sûr utiliser la syntaxe "-le" if [ "$nb" -lt 0 -o "$nb" -eq 0 ]; then diff --git a/exemple07 b/exemple07 index 89c4d88..7067f0d 100755 --- a/exemple07 +++ b/exemple07 @@ -19,9 +19,6 @@ until [[ $os =~ [lL]inux ]]; do read -p "Quel est le meilleur os ? " os done -for arg in $@;do - echo "Hello $arg" -done echo # jeu du nombre mystérieux : diff --git a/exemple08 b/exemple08 index 58aa59a..df82327 100755 --- a/exemple08 +++ b/exemple08 @@ -23,6 +23,9 @@ for i in {0..10..2} ; do echo $i done echo +for arg in $@;do + echo "Hello $arg" +done #multiplication read -p "Entrez une table de multiplication : " multiplicateur diff --git a/exemple10 b/exemple10 index b9bddbf..4339468 100755 --- a/exemple10 +++ b/exemple10 @@ -1,13 +1,19 @@ #!/usr/bin/bash function hello1 { -echo "Hello $(whoami)" + echo "Hello $(whoami)" } type hello1 + hello1 echo +echo $(hello1) +echo + +# les arguments + hello2() { echo "Hello $1" } @@ -16,24 +22,26 @@ type hello2 hello2 alice echo -#Portabilité des variables : -#Par défaut les variables sont globales au script... +# Portabilité des variables : +# Par défaut les variables sont globales au script... var=1 echo "var vaut $var" testvariable() { - var=2 - echo "Dans mafonction, var vaut $var" + var=2 + echo "Dans mafonction, var vaut $var" } testvariable echo "maintenant, var vaut $var" echo -#Pour qu’une variable soit locale à une fonction, il faut la déclarer locale dans notre fonction: +# Pour qu’une variable soit locale à une fonction, il faut la déclarer locale dans notre fonction: var=1 echo "var vaut $var" testvariable() { - local var=2 - echo "Dans mafonction, var vaut $var" + local var=2 + echo "Dans mafonction, var vaut $var" } testvariable echo "maintenant, var vaut $var" + + -- cgit v1.2.3