summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexemple16
-rwxr-xr-xexemple1148
-rwxr-xr-xexemple411
-rwxr-xr-xexemple614
-rwxr-xr-xexemple75
5 files changed, 77 insertions, 7 deletions
diff --git a/exemple1 b/exemple1
index 5b3b0af..66b82e4 100755
--- a/exemple1
+++ b/exemple1
@@ -1,4 +1,4 @@
-#!/usr/bin/bash
+
### Affiche Hello World ###
echo "Hello World !"
@@ -21,3 +21,7 @@ echo "Votre mot de passe $password a bien été pris en compte..."
# si on ne précise pas le nom de la variable, c'est $REPLY qui contient la saisie de l'utilisateur:
read -p "Vas-y, dis-moi quelque chose : "
echo "tu m'as dit $REPLY"
+
+# help printf - alternative à echo
+printf "je m'appelle %s et j'ai %d ans\n" bob 10
+
diff --git a/exemple11 b/exemple11
new file mode 100755
index 0000000..cb8c7fd
--- /dev/null
+++ b/exemple11
@@ -0,0 +1,48 @@
+#!/usr/bin/bash
+# jeu du nombre mystérieux
+#set -x
+function aide(){
+ echo "Usage: $(basename $0) [-h] [-l limite]"
+ exit
+}
+
+if [ $# == 0 ];then
+ aide
+fi
+
+while getopts :hl: OPTION; do
+ case $OPTION in
+ h)
+ aide
+ ;;
+ l)
+ limite=$OPTARG
+ ;;
+ *)
+ aide
+ esac
+done
+
+echo " ---------------------- "
+echo "< Jeu du Nombre Mystère >"
+echo " ---------------------- "
+secret=$(( RANDOM % $limite +1 ))
+nb=0
+while [[ $secret != $reponse ]]
+do
+ ((nb++))
+ read -p "Entrez un nombre entre 0 et $limite : " reponse
+ if [[ $reponse = "q" || $reponse = "Q" ]];then
+ echo "Bye"
+ exit
+ fi
+ if [[ ! $reponse =~ ^[0-9]+$ || $reponse -gt $limite || $reponse -le 0 ]] ; then
+ echo "Hors de l'intervalle !"
+ elif [[ $reponse -gt $secret ]]; then
+ echo "Trop grand !"
+ elif [[ $reponse -lt $secret ]]; then
+ echo "Trop petit !"
+ fi
+done
+echo "Gagné en $nb coups !"
+
diff --git a/exemple4 b/exemple4
index b2dd116..570ef16 100755
--- a/exemple4
+++ b/exemple4
@@ -1,6 +1,6 @@
#!/usr/bin/bash
-# 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é.
+# 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
# help test
@@ -33,9 +33,12 @@ test -d repert || mkdir repert && cd repert
pwd
cd -
rmdir repert
-
-### Affiche les arguments de la ligne de commande du script ###
+echo
+
+### Affiche les arguments postionnels de la ligne de commande du script ###
### $1, $2, $3... $* (ou $@) pour tous les arguments ###
### le script s'appelle $0 et a $# arguments ###
-test $# -lt 1 && echo "$0 demande un ou plusieurs arguments" || echo "Hello $* !"
+test $# -lt 1 && echo "$(basename $0) demande un ou plusieurs arguments" || echo "Hello $* !"
+
+
diff --git a/exemple6 b/exemple6
index 96206b2..94523f5 100755
--- a/exemple6
+++ b/exemple6
@@ -1,4 +1,4 @@
-:#!/usr/bin/bash
+#!/usr/bin/bash
read -p "Entre une table de multiplication : " nb
@@ -36,7 +36,7 @@ fi
echo
# Avec le code de sortie d'une commande Linux
-read -p "Entre le nom d'un utilisateur : " utilisateur
+read -p "Entrez le nom d'un utilisateur : " utilisateur
while who | grep -q $utilisateur ; do
echo "$utilisateur est connecté"
sleep 5
@@ -58,3 +58,13 @@ while true; do
echo "$i"
sleep 1
done
+
+# while et shift : décalage des aguments positionnels !
+if [ "$#" -gt 0 ];then
+while [ "$1" != "" ];do
+ echo "Hello $1"
+ shift
+done
+else
+ echo "Pas d'argument passé au script"
+fi
diff --git a/exemple7 b/exemple7
index 1c672d2..89c4d88 100755
--- a/exemple7
+++ b/exemple7
@@ -19,6 +19,11 @@ 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 :
#set -x
echo " ---------------------- "