LinuxWindows

Scripting Bash & PowerShell

Variables, conditions, boucles, fonctions — cours interactifs + quiz pour l'examen TSSR

🔥

Bases Fondamentales du Scripting

Philosophie Texte vs Objets · Pipeline · Variables · Conditions · Exemples TSSR réels

⚡

⚠️ RAPPEL EXAMEN

Les commentaires ne sont PAS optionnels — ils sont OBLIGATOIRES à l'examen TSSR. Un script sans commentaires = -5 points minimum. Les examinateurs doivent comprendre ta logique.

Qu'est-ce qu'un commentaire ?

Tout ce qui suit un # n'est PAS exécuté — c'est juste du texte pour expliquer le code.

# Ceci est un commentaire — le système l'ignore complètement
NOM="jdupont"
# Cette variable stocke le nom d'utilisateur qu'on va créer
echo "L'utilisateur est : $NOM"  # Commentaire en fin de ligne aussi

Comparaison : MAUVAIS vs BON

❌ SANS commentaires (MAUVAIS)

#!/bin/bash
useradd -m -s /bin/bash jdupont
passwd jdupont
usermod -aG sudo jdupont
mkdir -p /home/jdupont/Documents
chown jdupont:jdupont /home/jdupont/Documents
chmod 750 /home/jdupont/Documents

→ Personne ne comprend ce que ça fait !

✅ AVEC commentaires (BON)

#!/bin/bash
# Script de création utilisateur — crée "jdupont" avec dossier perso

# Étape 1 : Créer l'utilisateur (-m = créer dossier, -s = shell)
useradd -m -s /bin/bash jdupont

# Étape 2 : Définir le mot de passe (interactif)
passwd jdupont

# Étape 3 : Ajouter au groupe sudo (droits admin)
usermod -aG sudo jdupont

# Étape 4 : Créer dossier Documents (-p = créer aussi parents)
mkdir -p /home/jdupont/Documents

# Étape 5 : Changer propriétaire (sans ça, c'est en root)
chown jdupont:jdupont /home/jdupont/Documents

# Étape 6 : Donner les droits (750 = proprio rwx, groupe rx, autres rien)
chmod 750 /home/jdupont/Documents

→ Crystal clear ! L'examinateur voit que tu comprends.

📋 Règles à respecter

  • ✅ Commence chaque script par : #!/bin/bash puis un commentaire qui explique le but
  • ✅ Explique chaque bloc (groupe de lignes)
  • ✅ Explique les options bizarres (pourquoi -m ? pourquoi -R ?)
  • ❌ Ne commente PAS les évidences (echo "hello" # affiche hello = inutile)