summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2025-06-07 15:32:36 +0200
committerjerome <jerome@xlinfo.fr>2025-06-07 15:32:36 +0200
commit61cbb16b3756913a81a8d228c54afb938493ab5f (patch)
tree1566a062dd6e327eeff71b5b39a2f44ada6e1c1a
parent67b08e0e79b4ec1f434b059f434afa8db7575cf6 (diff)
downloadbash_tutorial-61cbb16b3756913a81a8d228c54afb938493ab5f.tar.gz
bash_tutorial-61cbb16b3756913a81a8d228c54afb938493ab5f.zip
set -xvHEADmaster
-rwxr-xr-xexemple016
-rwxr-xr-xexemple028
-rwxr-xr-xexemple032
-rwxr-xr-xexemple047
-rwxr-xr-xexemple0511
-rwxr-xr-xexemple073
-rwxr-xr-xexemple083
-rwxr-xr-xexemple1024
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"
+
+