From fbe94e6342d80fe9a79b1391b1ce2d3e547e7dbd Mon Sep 17 00:00:00 2001 From: jerome Date: Sun, 14 Apr 2024 17:03:37 +0200 Subject: numerotation des fichiers --- exemple1 | 27 --------------------- exemple2 | 17 ------------- exemple3 | 39 ----------------------------- exemple4 | 44 --------------------------------- exemple5 | 79 ----------------------------------------------------------- exemple6 | 70 ---------------------------------------------------- exemple7 | 46 ----------------------------------- exemple8 | 85 ---------------------------------------------------------------- exemple9 | 45 ---------------------------------- 9 files changed, 452 deletions(-) delete mode 100755 exemple1 delete mode 100755 exemple2 delete mode 100755 exemple3 delete mode 100755 exemple4 delete mode 100755 exemple5 delete mode 100755 exemple6 delete mode 100755 exemple7 delete mode 100755 exemple8 delete mode 100755 exemple9 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 -- cgit v1.2.3