# Introduction aux Scripts et au Scripting

## 🛠️ **Fonction d’un Script**

Un script sert principalement à **automatiser des tâches** répétitives ou complexes. Contrairement à un programme compilé, il est interprété **ligne par ligne**.

### ✅ **Avantages :**

* Pas besoin de compilation préalable, ce qui facilite les modifications.
* Facilité d’écriture et de test rapide.

### ❌ **Désavantages :**

* Plus lent à l’exécution car interprété ligne par ligne.
* Moins performant pour des tâches complexes ou intensives.

***

## 📜 **Langages de Scripting**

### 🛠️ **Interpréteurs courants :**

* **Bash** : Utilisé sur Unix/Linux comme shell et interpréteur.
* **PowerShell** : Équivalent Windows, plus moderne et polyvalent.
* **Perl** : Reconnu pour la manipulation avancée de texte et regex.
* **Python** et **Ruby** : Multiplateformes et puissants.

***

## 📊 **Comparaison des Langages de Scripting**

| **Unix**       | **Windows / Text**                                |
| -------------- | ------------------------------------------------- |
| **Bash**       | **PowerShell**                                    |
| **Perl**       | **VBS (Visual Basic Script)**                     |
| **Ruby**       | ~~<mark style="color:red;">**BAT (DOS)**</mark>~~ |
| **Python**     | **Ruby**                                          |
| **PowerShell** | **Python**                                        |

## 📝 **Explications :**&#x20;

{% stepper %}
{% step %}
**Bash** : Couramment utilisé sur Unix/Linux. **PowerShell** est son équivalent sur Windows.
{% endstep %}

{% step %}
**Perl** : Spécialisé dans les manipulations avancées de texte. Windows utilise parfois **VBS** comme alternative.
{% endstep %}

{% step %}
**Ruby** : Principalement pour Unix, mais le format **BAT** sur Windows est obsolète.
{% endstep %}

{% step %}
**Python** : Utilisé sur toutes les plateformes, il est moderne et flexible.
{% endstep %}

{% step %}
**PowerShell** : Langage Windows avancé avec des capacités comparables à Python.
{% endstep %}
{% endstepper %}

***

## 📄 **Format des Informations Échangées**

Les informations échangées entre différents logiciels sont souvent en **format texte**.

### ✅ **Avantages :**

* **Lisibilité** : Les fichiers texte sont simples à comprendre pour un humain.
* **Interopérabilité** : Tout langage de programmation peut lire et écrire du texte.

***

## 🗂️ **Configurations Windows**

Les configurations système sur Windows sont enregistrées dans la **base de registre** (Registry), organisée de manière **hiérarchique**.

### ✨ **Points Clés :**

* Structure organisée en **nœuds** et **sous-nœuds**.
* Permet de gérer les paramètres des logiciels, périphériques, et services.

***

## 🧙‍♂️ **Expressions Régulières (Regex) avec Perl**

Les **Regex** permettent de manipuler des chaînes de caractères de manière avancée. **Perl** est particulièrement réputé pour sa gestion des regex.

### 📌 **Exemple de Regex :**

```regex
/hello|bonjour|morning/
```

* Le symbole **`|`** signifie **alternative**.
* L’exemple ci-dessus vérifie si une chaîne contient **"hello"**, **"bonjour"**, ou **"morning"**.
