FANDOM


Précédent : 2017-12-01 / 420-C42-MA / Matériel et système d'exploitation client 2

Scripting Bash Edit

Turnkey Linux Edit

  • Basé sur Debian 8
  • www.turnkeylinux.org
  • Interface graphique web
  • Webmin (permet de gérer Linux avec interface graphique)

Les bases de Bash scripting Edit

Exemple d'un script

#!/bin/bash

# Un commentaire : Bonjour, le monde
echo "Bonjour"
echo "le monde"

# Un autre commentaire

Pour pouvoir executer un script :

1. Créer un fichier .sh Edit

nano script.sh

ou même

cat > script.sh

taper les commandes ligne par ligne et presser Ctrl+D pour finir.

2. Donner les droits à éxecuter Edit

chmod +x script.sh

3. Éxecuter le script Edit

./script.sh

ou

bash script.sh

ou

sh script.sh

Code de résultat Edit

echo $?
0

Le 0 indique que la commende précédente a été executée avec succes.

Enchainement de commandes Edit

Commandes longues Edit

commande 1 \
    commande 2 \
    commande 3

Execution consecutive Edit

commande 1 ; commande 2

La commande 2 est executée après la commande 1 (sans conditions).

Execution conditionnelle Edit

commande 1 && commande 2

La commande 2 execute seulement si la commande 1 a été lancé avec succes.

commande 3 || commande 4

La commande 4 execute seulement si la commande 3 n'a pas été executée avec succes.

Les fonctions Edit

Exemple primitif :

afficher () {
  echo "Ceci est un exemple de fonction"
}

Exemple plus complex :

afficher () {
  echo -e "${@}"
}

Variables de shell Edit

MACOULEUR=bleu ; echo $MACOULEUR

Attention ! Les variable restent locales pour un script / une fonctione. Pour les rendre accésible par tous les scripts, il faut les exporter.

L'exportation des variables Edit

MACOULEUR=vert ; export MACOULEUR ; echo $MACOULEUR

Paramètres de script Edit

  • $0 le nom du script
  • $1 le premier paramètre
  • $2... la suite des paramètres
  • $@ tous les paramètres (sans le nom de script)
  • $# nombre de paramètres
  • $* tous les paramètres aussi (mais il faut payer attention aux particularités)

Exemple primitif Edit

echo "Le nom du script est : " $0
echo "Le premier paramètre est : " $1

Conditions : if Edit

Fichier existe ? Edit

if [ -f $file ] ; then
  # le fichier existe
  commande 1 
else
  # le fichier n'existe pas
  commande 2
fi

Autres conditions sur fichiers et répertoires Edit

  • -e si le fichier existe
  • -d si le fichier est un répertoire
  • -f si un fichier régulier
  • -s si l ataille est différente de 0
  • -r si le fichier est lisible
  • ...

Operateurs Edit

  • -eq égal à
  • -ne différent de (non-égal)
  • -gt plus grand que
  • -lt plus petit que
  • ...

Plan de cours pour les semaines qui restent Edit

  • Semaine courante:
    • script 1 (6 dec)
    • ... (8 dec)
  • Semaine prochaine (11 dec) :
    • apache + vsftpd (11 dec)
    • examen thèorique (14 dec)
    • script 2
  • Semaine après (18 dec) :
    • examen pratique (18 dec)
    • ... (22 dec)