Skip to content

camara94/linkedin-script-bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Découvrir l'écriture de scripts en Bash

Le Bash est un interpréteur de commandes très connu en Linux, mais il est également un puissant langage de script. Si vous êtes administrateur Linux et si vous voulez automatiser vos tâches et réaliser des scripts puissants, cette formation est faite pour vous. Avec Rudi Bruchez, découvrez comment recevoir et traiter les paramètres envoyés à vos scripts, et comment manipuler des variables. Vous apprendrez à maîtriser ce langage de programmation et à créer des boucles et des branchements.

Variable en bash

Les nom des variables en bash peuvent contenir des caractères accentués, mais il serait mieux de les éviter au miximum et de se conformer aux règle de nommages traditionnelles dans les autres language.
NB: pour assigner des valeurs aux variables en bash, il faut surtout mettre de l'espace avant et après l'affectation
exemple:
Erreur: message = 'Hello, World'
Bon: message = 'Hello, World'
Pour utiliser une variable il faut préceder son nom par le signe $
echo $message

Interpolation des variables en bash

L'interpolation de variable consiste à interpréter une variable au sein d'une chaine de caractère. elle fait en bash via le signe "" et non '' soit le fichier ex1.sh
Exemple:

    #!/bin/bash #Cette ligne est le shebang
    message='coucou' #declaration et affectation de de variable
    echo '$message salut mon ami' # cette ligne va afficher $message suivi du reste
    echo "$message salut mon ami" # celle là va afficher la valeur de message suivi du reste
    echo ${message}cou # cette va afficher coucoucou

Les fonctions spécials

       #!/bin/bash 
       message='coucou'
       echo ${#message} # afficher la taille de la chaine
       echo ${message^^} # affiche la chaine en majuscule
       echo ${message,,} # affiche la chaine en miniscule
       echo ${message/o/at} # remplacer la première occurence de o par at
       echo ${message:4:2} # pour extraire deux caractères à partir la position 4 
    

Les calculs arithmétiques en bash

les calcules arithmétiques se font se font à l'aide de deux opérateurs en bash $(()) & let

        #!/bin/bash
        un=1
        deux=2
        trois=$((un + deux))
        echo trois # affiche 3
        let six=$trois*$deux ou let "six=$trois * $deux"
    

Les paramètres en bash

avant de rentrer dans le scripting, nous allons présenter quelques paramètres spéciaux:

  1. $0 retourne le nom du script
  2. $1 retourne le premier paramètre du script
  3. $2 retourne le deuxième paramètre du script etc jusqu'à $9
  4. à partir de 10 il faut utiliser cette notation ${10}
  5. $# retourne le nombre de paramètre d'un script
  6. $@ retourne tous les paramètre sous forme d'une liste
  7. $* retourne tous les paramètre sous forme d'une chaine de caractère.
  8. shift permet de supprimer le premier paramètre.
        #!/bin/bash
        echo "Le script s'appelle: $0"
        echo "Le premier paramètre: $1"
        echo "Le deuxième paramètre: $2"
        echo "Le troisième paramètre: $3"
        echo "Le dixième paramètre: ${10}"
        echo "Nous avons $# paramètre(s) passé à ce script"
        echo "Voici la liste des paramètres: $@"
    

Les tests en bash

Les tests sont réalisés en bash à l'aide de deux symbols à savoir le symbols: test ou [ ] pour faire la comparaison avec le signe égal, il faut entrourer le signe de deux espaces un avant et un après.

Pour vérifier le succès ou l'echec de l'exécution d'un script, on evalue la valeur de la variable spéciale $?, si le contenu de cette variable est égal à 0 cela signifie que le script est exécuté avec succès sinon toute autre valeur signifie l'echec.

        machin='truc'
        echo $? # afficher 0 car la variable a bien  été affectée
        # on peut comparer le contenu de deux variables avec 
test $machin = 'truc' # ou bien
[ $machin = 'truc' ]

Les Opérateurs de comparaisons et logiques

Pour les opérateurs, je vous dirige vers ces documents très riche.

  1. Les opérateurs de comparaison
  2. Les opérateurs de test de fichiers
  3. Les tests if/then imbriqués
  4. Les Opérations et sujets connexes 1
  5. Opérations et sujets connexes 2
  6. Les expressions entre doubles parenthèses
  7. Opérations et sujets connexes 3
  8. Une exploration en profondeur de l'art de la programmation shell

Les conditions en bash

Les conditions en bash se ressemblent beaucoup aux conditions rapport d'autres langages la syntaxe à la difference on remplace les parenthèses par le clé test ou [ ]

        if test 18 -eq 18; then
            echo "Vous êtes majeurs"
        else
            echo "Vous êtes mineurs"
        fi
        # ou
        if [ 18 -eq 18 ]; then
            echo "Vous êtes majeurs"
        elif test 18 -lt 40; then
            echo "Vous êtes vieux"
        else
            echo "Vous êtes mineurs"
        fi
    

NB: Lorsque vous utilisez les crochets, il ne faut surtout pas oublier de mettre un espace avant et après à l'intérieur avant de mettre les conditions

Les Switch en bash

la condition selon ou switch est exprimé en bash avec les expressions suivantes: *case ->switch; )->case; ;;->break; )->default.

case $1 in
"Camara")
echo "Bonjour Camara";;
"Laby")
echo "Bonjour Laby";;
"Damaro")
echo "Bonjour Damaro";;
*)
echo "Bonjour tout le monde";;
esac

Les tableaux en bash

On crée un tableau ou une liste avec la parathèse et en mettant un espace entre chaque élement de la liste.

  1. Pour récupérer un élément dans la liste ${nomlist[1]}
  2. Pour remplacer un élément de la liste nomlist[1]='Damaro'
  3. Pour récupérer la taille de la liste ${#nomliste}
  4. Pour récupérer touts les éléments de la liste: ${nomliste[*]}

Les boucles en bash

les boucles fonctionnent à peu de la même manière en bash que les autres langages

        liste=(Laby Damaro Camara Etudiant en Mastère pro Business Intelligence à l'ISET Radès)
        for item in ${liste[*]}; do
            echo $item
        done
        # ou bien avec la boucle while
        i=0
        while test "${#liste[@]} -gt $i; do
            echo ${liste[i]}
            i=$((i+1))
        done
    until test "${#liste[@]} -lt $i; do
        echo ${liste[i]}
        i=$((i+1))
    done
</pre>

Note: A note que la boucle until et while fonctionnent en sens inverse, c'est à dire avec while -gt pour dire tant que la taille est supérieur i alors que avec until j'ai utilisé -lt pour dire la taille n'est pas inférieur à i on continue

About

L'essentiel du script Bash en linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published