[Linux] Exécution d’un script linux

shabang

Pour qu’un script s’exécute correctement, il est nécessaire que ce dernier remplisse certaines conditions :

Le Sha-Bang !

Le sha-bang #! doit être noté en-tête du fichier (la première ligne).
Il indique à votre système d’exploitation que votre script est un ensemble de commandes pour l’interpréteur indiqué.

Les caractères #! sont codés sur deux octets et correspondent en fait à un nombre magique, un marqueur spécial qui désigne un type de fichier, ou dans ce cas, un script shell exécutable.

Son nom est possiblement une contraction de sharp (désignant le dièse, #) et bang (désignant le point d’exclamation, !). On trouve aussi d’autres dénominations : shabang, shebang, she-bang, hash-bang.

Le chemin de l’interpréteur

Tout de suite après le sha-bang se trouve un chemin. C’est le chemin vers le programme qui interprète les commandes de ce script, qu’il soit un shell, un langage de programmation ou un utilitaire.

#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f

Chacune des lignes d’en-tête du script ci-dessus appelle un interpréteur de commande différent, qu’il soit /bin/sh, le shell par défaut (bash dans un système Linux) ou autre chose.

Ensuite, cet interpréteur de commande exécute les commandes du script, en commençant au début (la ligne suivant immédiatement celle avec le #!), en ignorant les commentaires.

sha-bang

Création d’un script

mkdir /home/florent/mes_scripts
> sysmaj.sh
nano sysmaj.sh

Voici le contenu du script :
#!/bin/sh

# Mise a jour des depots
apt-get update

# Mise a jour du systeme
apt-get upgrade

Les droits d’exécution

Pour qu’un script soit exécutable, vous devez lui affecter les droits d’exécution :
chmod +x /home/florent/mes_scripts/sysmaj.sh

Exécution du script

Le chemin absolu :

Quel que soit l’emplacement où vous vous trouvez, tapez :
./home/florent/mes_scripts/sysmaj.sh

Le chemin relatif :

Dans ce cas, il faut aller dans le répertoire qui contient l’exécutable avant de l’exécuter :
cd /home/florent/mes_scripts/
./sysmaj.sh

Si vous êtes trop descendu dans l’arborescence, utilisez :
. - répertoire courant
.. - répertoire parent

Tâche planifiée avec Crontab :

Vous saurez tout sur la planification avec Crontab ici !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *