summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2024-04-14 17:03:37 +0200
committerjerome <jerome@xlinfo.fr>2024-04-14 17:03:37 +0200
commitfbe94e6342d80fe9a79b1391b1ce2d3e547e7dbd (patch)
tree4dfce3bc2ee337fb8759bd28d4ce3fdf8c665c39
parent2df8b02968e4de3860516cf2c4c107a4ab79aac9 (diff)
downloadbash_tutorial-fbe94e6342d80fe9a79b1391b1ce2d3e547e7dbd.tar.gz
bash_tutorial-fbe94e6342d80fe9a79b1391b1ce2d3e547e7dbd.zip
numerotation des fichiers
-rwxr-xr-xexemple127
-rwxr-xr-xexemple217
-rwxr-xr-xexemple339
-rwxr-xr-xexemple444
-rwxr-xr-xexemple579
-rwxr-xr-xexemple670
-rwxr-xr-xexemple746
-rwxr-xr-xexemple885
-rwxr-xr-xexemple945
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