Ecrire un script shell

Le shell est un véritable langage de programmation. Il permet grâce à des scripts de faire de nombreuses manipulations bien sympathiques.

Un script shell permet d’executer une série de commandes Linux, tout en y insérant des structures de contôle (IF par exemple), des boucles (FOR, WHILE, …) et donc des variables.

#Les bases

Tout script sh doit commencer obligatoirement par cette ligne : _ *

#!/bin/sh

* _ Cela permet d’indiquer qu’il faut utiliser sh (donc shell) pour interpreter le script.

#Notre premier script shell

La première utilité d’un tel script est de vous éviter de taper à chaque fois de nombreuses lignes de commande. Par exemple si vous devez lancer un serveur HL vous devez taper dans la console: screen ./hlds_run -game cstrike -insecure -nomaster +map de_dust +sv_lan 1, et encore là c’est vraiment court comme ligne de commande.

Il serait plus simple de créer un script shell baptisé hl_serveur.sh et dont le contenu serait :

#!/bin/sh
screen ./hlds_run -game cstrike -insecure -nomaster +map de_dust +sv_lan 1

Ainsi pour lancer notre serveur, il suffira de taper:

  • ./hl_serveur.sh

C’est beaucoup plus simple n’est-ce pas ? ;-)

#Les variables Pour appeller une variable par exemple HOME il suffit de mettre un $ devant, par exemple :

#!/bin/sh

echo $HOME

Ce petit code va afficher la variable HOME à l’écran.

Pour affecter une valeur à une variable c’est très simple.

#!/bin/sh

MSG=salut

echo $MSG

Ce script se passe de commantaires je pense.

#Les arguments en ligne de commande Pour passer des arguments en ligne de commande c’est encore une fois très simple. Chaque argument est numéroté et ensuite on l’appel par son numéro, l’explication n’est pas très claire mais l’exemple lui l’est =).

./test.sh powa noplay

Voici notre test.sh

#!/bin/sh

echo $2
echo $1

Et la sortie

noplay powa

Notez que $0 est le nom du fichier.