diff options
| -rwxr-xr-x | exemple1 | 27 | ||||
| -rwxr-xr-x | exemple2 | 17 | ||||
| -rwxr-xr-x | exemple3 | 39 | ||||
| -rwxr-xr-x | exemple4 | 44 | ||||
| -rwxr-xr-x | exemple5 | 79 | ||||
| -rwxr-xr-x | exemple6 | 70 | ||||
| -rwxr-xr-x | exemple7 | 46 | ||||
| -rwxr-xr-x | exemple8 | 85 | ||||
| -rwxr-xr-x | exemple9 | 45 |
9 files changed, 0 insertions, 452 deletions
diff --git a/exemple1 b/exemple1 deleted file mode 100755 index 66b82e4..0000000 --- a/exemple1 +++ /dev/null @@ -1,27 +0,0 @@ - - -### Affiche Hello World ### -echo "Hello World !" - -### Affiche une variable qu'on déclare préalablement ### -### 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 !" - -### Affiche la substitution d'une commande ### -echo "Hello $(whoami) !" - -### Affiche une variable saisie par l'utilisateur ### -read -p "Quel est votre nom ? " nom -echo "Hello $nom !" -read -sp "Choisissez un mot de passe : " password -echo "Votre mot de passe $password a bien été pris en compte..." - -# help read -# 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/exemple2 b/exemple2 deleted file mode 100755 index 12b68ed..0000000 --- a/exemple2 +++ /dev/null @@ -1,17 +0,0 @@ -#/usr/bin/bash - -# calculs arythmétiques -a=2 -b=5 -# addition -c=$((a+b)) -echo $c -# incrémentation -((c++)) -echo $c -# entier négatif -c=$((a-b)) -echo $c -# division entière -c=$((b/a)) -echo $c diff --git a/exemple3 b/exemple3 deleted file mode 100755 index 0e06c2a..0000000 --- a/exemple3 +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/bash - -mot1=hello -mot2=World - -#longueur de la chaîne -echo $mot1 a ${#mot1} lettres -echo $mot2 a ${#mot2} lettres -echo - -# concaténation -concat=$mot1$mot2 -echo $concat -#ou -concat=$mot1 -concat+=$mot2 -echo $concat -echo -echo $concat a ${#concat} lettres -echo - -# phrase -phrase="$mot1 $mot2 !" -echo "\"$phrase\" a ${#phrase} lettres (y compris les espaces)" -echo - -# substitution -echo ${concat/h/H} -echo ${phrase/World/le monde} - -# suppression -echo ${phrase/World} - -# extraction ${string, position, longueur} -# extraction du mot2 : a partir de la sixième lettre (l'index commence à 0) -echo ${concat:5:${#mot2}} -# extraction de la dernière lettre -echo ${concat:${#concat}-1:1} - diff --git a/exemple4 b/exemple4 deleted file mode 100755 index 570ef16..0000000 --- a/exemple4 +++ /dev/null @@ -1,44 +0,0 @@ -#!/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é. - -# Exemple avec la primitive du shell test -# help test - -# teste l'existence d'un répertoire "repert" -test -d repert -echo $? - -# teste l'existence d'un fichier régulier "fichier" -test -f fichier -echo $? - -# Les enchaînements conditionnels (qui se basent sur le code de sortie) : - -# le "Et logique" : && -test -f fichier && echo "le fichier existe" - -# le "Ou logique" : || -test -f fichier || echo "le fichier n'existe pas" - -# Enchaînement des deux: -test -d repert && echo "le répertoire existe" || echo "le répertoire n'existe pas" -# repert n'existe pas, on le créé et ensuite on se déplace dedans... -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 - -### 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 "$(basename $0) demande un ou plusieurs arguments" || echo "Hello $* !" - - - diff --git a/exemple5 b/exemple5 deleted file mode 100755 index 72ef4f8..0000000 --- a/exemple5 +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/bash -set -x -# Comparaison if,elif,else,fi avec la primitive test -# help if -read -p "Entrez un nombre positif ou négatif : " nb - -if test "$nb" -lt 0; then - echo "$nb est négatif" -elif test "$nb" -eq 0; then - echo "$nb est nul" -else - echo "$nb est positif" -fi - -# Idem avec [ ] syntaxe alternative à test -# help [ -if [ "$nb" -lt 0 ]; then - echo "$nb est négatif" -elif [ "$nb" -eq 0 ]; then - echo "$nb est nul" -else - echo "$nb est positif" -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 - echo "$nb est inférieur ou égal à zéro" -else - echo "$nb est positif" -fi - -# palindrome -# man rev -# man tr -read -p "Choisis un palindrome : " rep -pal=$(echo $rep|tr [A-Z] [a-z]) -if [ $(echo $pal|rev) = $pal ]; then - echo "$rep est un palindrome" -else - echo "$rep n'est pas un palindrome" -fi - -# comparaison avec le code de sortie d'une commande linux -read -p "Entrez le nom d'un utilisateur : " utilisateur - -if who |grep -q $utilisateur ; then - echo "$utilisateur est connecté" -else - echo "$utilisateur n'est pas connecté" -fi - -# Alternative à plusieurs elif... -# help case -read -p "Quelle distribution préfères-tu entre Ubuntu, Fedora ou Manjaro ? " distro -case $distro in - Ubuntu) - echo "Tu es plutôt adepte de la famille Debian";; - Fedora) - echo "Tu es plutôt adepte de la famille RedHat";; - Manjaro) - echo "Tu es plutôt adepte de la famille ArchLinux";; - *) - echo "Connais pas !" -esac - -# Cette syntaxe accepte aussi un ou logique '|' et des motifs comme []... -case $distro in - [uU]buntu) - echo "Tu es plutôt adepte de la famille Debian";; - [fF][eE][dD][oO][rR][aA]) - echo "Tu es plutôt adepte de la famille RedHat";; - Manjaro|manjaro) - echo "Tu es plutôt adepte de la famille ArchLinux";; - *) - echo "Connais pas !" -esac - - diff --git a/exemple6 b/exemple6 deleted file mode 100755 index 94523f5..0000000 --- a/exemple6 +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/bash - -read -p "Entre une table de multiplication : " nb - -# boucle while (tant que) -# help while -i=1 -while [ $i -lt 10 ] ;do - echo "$i x $nb = $((i*nb))" - ((i++)) -done - -# boucle until (jusqu'à ce que) -# help until -i=1 -until [ $i -gt 9 ] ;do - echo "$i x $nb = $((i*nb))" - ((i++)) -done - -# palindrome (sans la commande rev) -# voir exemple3 -read -p "Choisisez un palindrome : " rep -pal=$(echo $rep|tr [A-Z] [a-z]) -i=${#pal} -while [ "$i" -gt 0 ] ; do - rev+=${pal:$i-1:1} - ((i--)) -done -echo "L'inverse de $pal est $rev" -if [ $rev = $pal ]; then - echo "$rep est un palindrome" -else - echo "$rep n'est pas un palindrome" -fi -echo - -# Avec le code de sortie d'une commande Linux -read -p "Entrez le nom d'un utilisateur : " utilisateur -while who | grep -q $utilisateur ; do - echo "$utilisateur est connecté" - sleep 5 -done -echo "$utilisateur s'est déconnecté" - -# while true -# break et continue... -# help break -# help continue -i=0 -while true; do - ((i++)) - if [ "$i" -eq 5 ]; then - continue - elif [ "$i" -eq 10 ]; then - break - fi - 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 deleted file mode 100755 index 89c4d88..0000000 --- a/exemple7 +++ /dev/null @@ -1,46 +0,0 @@ -#!/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 !" diff --git a/exemple8 b/exemple8 deleted file mode 100755 index 58aa59a..0000000 --- a/exemple8 +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/bash - -# boucle for -# help for -# parcourir une liste d'éléments -for os in windows linux mac ; do - echo $os -done -echo - -# avec les arguments du script -if [ "$#" -gt 0 ]; then - for arg in $@; do - echo $arg - done -else - echo "Pas d'argument passé au script !" -fi -echo - -# {debut..fin..pas} -for i in {0..10..2} ; do - echo $i -done -echo - -#multiplication -read -p "Entrez une table de multiplication : " multiplicateur -for i in {1..10}; do - echo "$i x $multiplicateur = $((i*multiplicateur))" -done -echo - -# palindrome (sans la commande rev) -# voir exemple3 -# en utilisant la syntaxe du C : (( ; ; )) . Permet d'utiliser des variables -read -p "Choisisez un palindrome : " rep -pal=$(echo $rep|tr [A-Z] [a-z]) -for ((i = 0; i <= ${#pal} ; i++)); do - rev=${pal:$i:1}$rev -done -echo "L'inverse de $pal est $rev" -if [ $rev = $pal ]; then - echo "$rep est un palindrome" -else - echo "$rep n'est pas un palindrome" -fi -echo - -# commandes sur des fichiers -for fichier in * ; do - wc -l $fichier -done -echo - -# écrire et lire un fichier -cat > fichier << EOF -première ligne -deuxième ligne -troisième ligne -EOF -monfichier=$(cat fichier) -for ligne in $monfichier; do - echo $ligne -done -echo - -# IFS : Internal Field separator par défaut : nouvelle ligne, tabulation, espace - -IFS=$'\n' -for ligne in $monfichier; do - echo $ligne -done -echo -unset IFS -rm fichier - -# taches parallèles en arrière plan : -for i in {1..254}; do - ip=192.168.2.$i - ping -c1 $ip >/dev/null && echo $ip : ok & -done -wait - - diff --git a/exemple9 b/exemple9 deleted file mode 100755 index 0cf8018..0000000 --- a/exemple9 +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/bash - -# la boucle select -# help select - -PS3="Quel est ton os préféré ? " -select os in windows mac linux -do - echo $os - break -done -echo -PS3="Que veux-tu savoir ? " -select cmd in 'version du noyau' 'uptime du serveur' 'derniers utilisateurs connectés' quitter -do - case $cmd in - 'version du noyau') - uname -a;; - 'uptime du serveur') - uptime;; - 'derniers utilisateurs connectés') - last|head;; - quitter) - echo "bye" - break;; - esac -done -echo -# ou on peut utiliser $REPLY -echo "Encore une fois !" -echo -select cmd in 'version du noyau' 'uptime du serveur' 'derniers utilisateurs connectés' 'q pour quitter' -do - case $REPLY in - 1) - uname -a;; - 2) - uptime;; - 3) - last|head;; - 4|q|Q) - echo "bye" - exit;; - esac -done |
