Cours 15 - Scripts sous Linux

Objectifs

Déroulement

  1. Introduction
  2. Un peu de théorie
  3. Atelier sur les scripts Bash
  4. Exercice 15 - Comptes utilisateurs
  5. Travail sur le TP02 si temps
  6. Conclusion

Un peu de théorie

Liens utiles

À savoir!

Quelques commandes intéressantes pour le scripting

  1. echo
    echo "Bonjour $USER"
  2. touch
    Crée un fichier vide.
  3. cat
    Affiche le contenu des fichiers passés en paramètres.
  4. sleep
    Attend le nombre de secondes indiqués avant de continuer le script.
  5. clear
    Efface le contenu du terminal.
  6. read NOM
    Lit l'entrée standard jusqu'à un "\n" et met son contenu dans la variable $NOM.
  7. bc
    Calculatrice simple
    echo "(42+(21*2))/2" | bc
  8. grep string
    Filtre les lignes contenant la chaîne "string"
    echo "Informations sur mon compte :"
    cat /etc/passwd | grep $USER
  9. sort
    Trie des noms
    echo -e "chenille\nmaison\narbre\nbuisson" | sort
  10. seq
    Générer une liste incrémentée de nombres:
    seq 1 20
  11. tr string1 string2
    Change des caractères (en utilisant des expressions régulières).
    echo "JE NE VEUX PAS DE MAJUSCULES" | tr '[A-Z]' '[a-z]'
  12. cut
    Sélectionne seulement certaines parties de l'affichage. Fonctionne aussi avec des colonnes.
    echo "Liste des comptes utilisateurs :"
    cat /etc/passwd | cut -d':' -f1
  13. head
    Affiche les 10 premières lignes seulement d'un fichier texte. (nombre de lignes avec -n)
    cat mon_fichier | head -n 3
  14. tail
    Affiche les 10 dernières lignes seulement. (nombre de lignes avec -n)
    cat mon_fichier | tail -n 3
  15. wc
    Affiche le nombre de lignes, de mots et de caractères.
    echo "Nombre de comptes utilisateurs :"
    cat /etc/passwd | wc -l

Atelier sur les scripts bash

Outils à utiliser

Faites l'installation de Visual Studio Code

Premiers exemples

Premier programme Bash appelé '''script1.bash''':

#!/bin/bash
echo Mon premier script
echo Liste des fichiers :
ls -la
exit 0

Pour exécuter un script, on change les droits et on tape:
./script1.bash

Deuxième programme Bash appelé '''script2.bash''':

#!/bin/bash
echo "Votre nom est "$1 

On exécute comme suit:

./script2.bash Jimmy

Qu'est-ce que je viens d'ajouter à mon script?

Troisième programme Bash appelé '''script3.bash''':

#!/bin/bash
echo -n "Entrez un nom de fichier: "
read file
if [ -e "$file" ]; then
    echo "Le fichier existe!"
else
    echo "Le fichier n'existe pas, du moins n'est pas dans le répertoire d'exécution du script"
fi

Quatrième programme Bash appelé '''script4.bash'''

#!/bin/bash
echo Programme menu
stop=0
while test $stop -eq 0
do
    echo 1 : Affiche la date
    echo 2,3 : Affiche le repertoire courant
    echo 4 : Fin
    echo
    echo Votre choix ?
    read reply
    echo
    case $reply in
    "1")
        date
    ;;
    "2"|"3")
        pwd
    ;;
    "4")
        stop=1
    ;;
    *)
        echo Choix non valide
    ;;
    esac
done