diff options
| author | jerome <jerome@xlinfo.fr> | 2024-04-14 16:55:49 +0200 |
|---|---|---|
| committer | jerome <jerome@xlinfo.fr> | 2024-04-14 16:55:49 +0200 |
| commit | 91595d034f408e8482f21facec97f7c2fc7fba6a (patch) | |
| tree | e88b2a0c5e491f8e57eb9784c566bd1e6f0249a1 | |
| parent | 9c6790810256c826f71e0a0a3c4b54844cc24477 (diff) | |
| download | bash_tutorial-91595d034f408e8482f21facec97f7c2fc7fba6a.tar.gz bash_tutorial-91595d034f408e8482f21facec97f7c2fc7fba6a.zip | |
ajout de exemple11
| -rwxr-xr-x | exemple1 | 6 | ||||
| -rwxr-xr-x | exemple11 | 48 | ||||
| -rwxr-xr-x | exemple4 | 11 | ||||
| -rwxr-xr-x | exemple6 | 14 | ||||
| -rwxr-xr-x | exemple7 | 5 |
5 files changed, 77 insertions, 7 deletions
@@ -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 !" + @@ -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 $* !" + + @@ -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 @@ -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 " ---------------------- " |
