summaryrefslogtreecommitdiff
path: root/exemple07
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2024-04-14 17:04:20 +0200
committerjerome <jerome@xlinfo.fr>2024-04-14 17:04:20 +0200
commit50b0c03236f63fb25f40c47d204eeacbaf9b5d69 (patch)
tree9618a8ba231a221325b645415dfbe098c697dad8 /exemple07
parentfbe94e6342d80fe9a79b1391b1ce2d3e547e7dbd (diff)
downloadbash_tutorial-50b0c03236f63fb25f40c47d204eeacbaf9b5d69.tar.gz
bash_tutorial-50b0c03236f63fb25f40c47d204eeacbaf9b5d69.zip
numerotation des fichiers
Diffstat (limited to 'exemple07')
-rwxr-xr-xexemple0746
1 files changed, 46 insertions, 0 deletions
diff --git a/exemple07 b/exemple07
new file mode 100755
index 0000000..89c4d88
--- /dev/null
+++ b/exemple07
@@ -0,0 +1,46 @@
+#!/usr/bin/bash
+
+# le mot clé [[
+# help [[
+# [[ est une amélioration bash de la primitive [. Il comporte plusieurs améliorations qui en font un meilleur choix si vous écrivez des scripts ciblant bash, notamment :
+# il gère les chaînes vides et les chaînes avec des espaces de manière plus intuitive (plus besoin d'entourer les variables non initialisées de guillemets...)
+# il permet d'utiliser les opérateurs && et || pour les tests et < et > pour les comparaisons de chaînes
+# il possède un opérateur =~ pour effectuer des correspondances d'expressions régulières.
+
+# Exemple complètement objectif...
+# voir la négation '!'
+# attention, ne pas utiliser les guillements ou les apostrophes pour les regexps qui les transforment en chaînes litérales !
+while [[ ! $os =~ [lL]inux ]]; do
+ read -p "Quel est le meilleur os ? " os
+done
+unset os
+echo "Encore une fois !"
+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 " ---------------------- "
+echo "< Jeu du Nombre Mystère >"
+echo " ---------------------- "
+ secret=$(( RANDOM % 100 +1 ))
+ nb=0
+ while [[ $secret != $reponse ]]
+ do
+ ((nb++))
+ read -p "Entrez un nombre entre 0 et 100 : " reponse
+ if [[ ! $reponse =~ ^[0-9]+$ || $reponse -gt 100 || $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 !"