Les bases du scripting

De Avided.info
Aller à : navigation, rechercher


Introduction

Un script est un fichier texte qui contient les commande qui serons exécuté séquentiellement par l’interpréteur de commande choisi. Les interpréteurs de commandes les plus couramment employés sont sh, bash, ksh, awk, perl, python.

Exécuter un script

Sur les systèmes Unix/linux, il existe plusieurs méthodes pour exécuter un script. Chaque méthode a ces particularité et donc des avantages et des defauts

Editer un nouveau fichier script.sh et ecrire le texte suivant

#!/bin/sh 

echo "Hello World"

Nous allons nous baser sur ce fichier pour explique les différente méthode. L’extension .sh du fichier n'est pas nécessaire, mais conventionnellement elle nous permet de repérer rapidement le type de fichier sans l'ouvrir. L’extension pourrait être .doc que cela ne générait pas sont exécution, ou ne pas avoir d’extension.

sourcé

Cette méthode fait comme si vous écriviez dans le shell courant les commandes inscrite dans le fichier. Autrement dit, un nouveau shell n'est pas créé et c'est l’interpréteur de commande que vous utilisez actuellement qui sera utilisé. Cette méthode est souvent utilisé pour charger des variables d'environnement Elle pose problème si la commande "exit" est utilisé dans le script. En effet cette commande ferme l’interpréteur, donc souvent la connexion Une autre façn d'ecrire cette méthode est la suivante. Elle correspond à la même chose. C'est juste plus lisible à la lecture d'un script.

. script.sh
source script.sh

= Via le shell desiré

Cette méthode est souvent utilisé pendant le développement ou si vous désirez changer le shell d’exécution habituelle. On exécute l’interpréteur avec en argument le fichier à exécuter. Dans ce cas, aucun droits spécifiques n'est nécessaire. Mais il est aussi possible de donner des options pour l’exécution du script syntaxe :

interpreteur script 

ex:

sh script.sh 
perl script.pl
ksh script.ksh 
bash fichier_script.sh

exemple d'option : N'execute pas le script, mais contrôle la syntaxe

ksh -n script.ksh 

Execute le script en mode debug

ksh -x script.ksh 

Shebang

C'est la méthode la plus utilisée. Surtout une fois votre script bien testé et mis en production. La première ligne du fichier contient #!/votre/interpreteur ex:

#!/bin/sh 

echo "Hello World"

Vous devez aussi avoir les droits d’exécution sur le fichier chmod u+x script.sh

Pour l'executer indiquer le chemin du fichier, puis le nom du fichier

/home/user1/bin/script.sh 

Si vous étes dans le répertoire qui héberge le script un chemin relatif fonctionne très bien aussi

./script.sh

Si vous désirez ne pas indiquer le chemin et que votre script soit exécutable depuis ou vous voulez ajouter le dossier dans votre variable $PATH

echo : affiche

echo "Bonjour"
Bonjour
echo "Bonjour $USER !"
Bonjour sebastien
echo "Bonjour \n $USER !"
Bonjour
sebastien !

Enoyer un mail

La méthode la plus simple

echo -e "message \n coucou" | mail -s "sujet du mail" user@domaine.com

Une méthode plus intéressante

Créer un fichier contenant le corps du message Il peux être sous ce format, il sera envoyé au même format

Bonjour, 

Je vous envoie ce message pour des essaies techniques.
Je vous remercie de ne pas répondre a ce mail.

Cordialement,
Un novice
cat message.txt | mail -s "Essaie de mail" user@domaine.com