# Faire un script Linux

### Comment faire un script Linux ?

#### <span style="font-weight: 400;">Création du fichier</span>

<span style="font-weight: 400;">Créer un fichier `monFichier.sh` : </span>

```shell
nano monFichier.sh
```

<p class="callout info">L'extension ".sh" n'est pas obligatoire. Elle permet juste d'indiquer le type de fichier.</p>

#### <span style="font-weight: 400;">Contenu du script</span>

<p class="callout success">Tous les script linux devront commencer par `<strong><em>#!/bin/bash</em></strong>`</p>

**Paramètre Shell**

<table id="bkmrk-param%C3%A8tres-fonction-" style="width: 69.3827%;"><tbody><tr><td style="width: 17.5926%;">**Paramètres**

</td><td style="width: 82.4074%;">**Fonction**

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$1-$9</span>

</td><td style="width: 82.4074%;">Représente les paramètres positionnels pour les arguments 1 à 9

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">${10}-${n}</span>

</td><td style="width: 82.4074%;">Représente les paramètres positionnels pour les arguments après 9

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$0</span>

</td><td style="width: 82.4074%;">Représente le nom du script

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$∗</span>

</td><td style="width: 82.4074%;">Représente tous les arguments comme une seule chaîne de caractères

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$@</span>

</td><td style="width: 82.4074%;">Identique au $∗, mais différent lorsqu'il est entouré de (").

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$#</span>

</td><td style="width: 82.4074%;">Représente le nombre total d'argument

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$$</span>

</td><td style="width: 82.4074%;"><span style="font-weight: 400;">PID du script</span>

</td></tr><tr><td style="width: 17.5926%;"><span style="font-weight: 400;">$?</span>

</td><td style="width: 82.4074%;"><span style="font-weight: 400;">Représente le dernier code retourné </span>

</td></tr></tbody></table>

#### Exécution du script

Pour exécuter un fichier ".sh" :

```shell
bash monFichier.sh
```

> Si vous souhaitez exécuter un script sans utiliser la commande `bash`. Vous pouvez le faire en vous rajoutant les droits d'exécution sur le fichier.

Ce qui donne la commande suivante :

```shell
chmod +x monFichier.sh
```

Vous pouvez désormais exécuter le script de la manière suivante :

```shell
./monFichier.sh
```

#### Exemple script 

Voici un exemple d'un script qui afficher des informations :

```shell
#!/bin/bash

# Ceci est un commentaire en bash

# Afficher le mot "Hello world"
echo "Hello world"

# Afficher le nom du script
echo $0
```

La sortie du script :

```
user@server:/home/user$ ./monFichier.sh
Hello world
./monFichier.sh
```