Je vais mettre ici les infos de base pour la création de scripts bash sous Ubuntu voire base Debian, voire pour Linux d'une façon plus générale.

Ceci sera la version allégée voire incomplète mais devrait suffire pour faire les premiers pas et comprendre la suite.

Cela va couvrir la console, le terminal, les premières lignes, "hello world", transformation en script de une à plusieurs lignes, le shebang, les variables, variables systèmes, variables créées, variables locales, les quottes, les fonctions,...

~/bin, /opt, ... nautilus scripts et les autres répertoires pour les scripts

D'où part-on ?

Pour faire simple, quand on connais le bureau et ses icônes, une ligne de commande est une autre façon de lancer un programme.

La console, le terminal

Pour lancer une ligne de commande, on peut passer par une console ou un terminale. Le terminal est un programme qui donne un accès indirect à la console. La console est la représentation de la vie avant l'interface graphique. Pour faire simple, je n'utiliserai que le terme terminal (ou plutôt je n'utiliserai pas la console !).

Raccourcis clavier pour lancer le terminal : Ctrl + Alt + t (Control + Alt + la lettre T).

La première ligne

Si vous utilisez VLC, il peut être lancé en cliquant sur son icône (qui est un lien vers un fichier exécutable) ou ouvrir un terminal et taper la commande:

vlc

Vous allez me dire, "donc pas besoin de ligne de commande" et je répond "donc pas besoin d'icônes"...

Les options

Si on lance vlc, on aura les valeurs d'options par défaut, mais quelques fois, on peut vouloir des valeurs différentes : vlc machanson.mp3 lancera vlc et le fichier machanson.mp3 qui se trouve dans le répertoire courant.

Une option est intéressante et redondante : -h (pour aide) comme la touche F1 de l'interface graphique vous donnera de l'aide sur la fonction en cours :

vlc -h pour avoir de l'aide sur VLC

NB : man (pour afficher les entrée de manuel dans le code) peut donner d'autres types d'informations car il fonctionne différemment :

man vlc pour avoir le man de vlc

"Bonjour Monde",

Nous avons donc un programme et des options. vlc est un programme, echo est un autre programme qui inscrit un texte dans la console ou le terminal :

echo Bonjour Monde renverra Bonjour Monde.

bon, ça c'est fait !

Transformation en script... de une à plusieurs lignes,

un script est un fichier texte qui a la particularité d'être reconnu par le système comme exécutable.

Pour créer un script, il suffit de créer un fichier texte, aller dans ses propriétés et cocher "Autoriser l'exécution...". C'est maintenant que l'on voit l'aspect pratique de la ligne de commande. Pour une explication d'un processus en mode graphique, le texte est compliqué car il faut détailler la vue et les actions.

Pour "créer un fichier texte, aller dans ses propriétés et cocher "Autoriser l'exécution...".", on fera :

echo 'echo Bonjour Monde' > unfichier.sh

puis

chmod +x unfichier.sh ; pour rendre le fichier exécutable

et enfin

./unfichier.sh pour l'exécuter.

Tout cela en une ligne :

echo 'echo Bonjour Monde' > unfichier.sh ; chmod +x unfichier.sh ; ./unfichier.sh

Éditeur de texte

Sur la ligne précédente, on a une suite echo xxxx > fichier qui inscrit du texte dans un fichier... mais un vrai éditeur de texte est plus pratique. Un éditeur de texte est pour la programmation et n'ajoutera pas d'informations de mise en page autre que le saut de ligne contrairement à un traitement de texte.

Les plus connus dans Ubuntu ; nano, vi, vim voire gedit... j'en utilise 2  principalement : nano et gedit... actuellement, j'utilise geany pour compléter ou remplacer gedit.

Avec nano notre exemple précédent se passera ainsi :

nano unfichier.sh

on inscrit le texte du script :

echo Bonjour Monde

puis, pour fermer et enregistrer notre fichier ; faire ctrl + x puis o (pour oui) puis la touche "Entrée".

On rend le fichier exécutable avec :

chmod +x unfichier.sh

puis on le lance :

./unfichier.sh

le retour sera :

Bonjour Monde

Le shebang et autre conventions

Maintenant que l'on sait créer et lancer un script, intéressons nous à l'intérieur du script :

Un ensemble de conventions, facilitent la lecture et l'exécution de nos script dont le shebang qui commencera nos scripts et indiquera au système dans quel langage doit être interprété notre script.

Pour le moment, on commencera avec #!/bin/bash pour indiquer que nous utilisons le bash mais il existe aussi le sh, le perl, le python...

A savoir, l'extension de notre fichier devient facultative, notre exemple pouvant donc être  unScript.sh ou unScript (tout court !).

Un exit finira "proprement" le script. On peut aussi ajouter un nombre entier ( exit 0 ) pour se repérer si plusieurs points de sortie existent.

Les quottes

Toujours dans l'idée d'une bonne lisibilité et interprétation, le texte devrait être toujours quotté. Dans notre exemple, Bonjour Monde est une chaîne de caractères . Pour que le programme se déroule au mieux, il est préférable de délimiter cette chaîne du reste du code.

Pour se faire, on utilisera les quottes : ' ou " ; qui entoureront nos chaînes de caractère :

"ceci est une chaîne de caractères"

La différence entre les simples et les doubles quottes (' ou ") tiens dans l'interprétation et à l'utilisation conjointe (pour distinguer les quottes quand elles sont l'une dans l'autre). Les simples quottes ' gardent leur contenu en état sans être interprétés.

Les Commentaires

Pour retrouver des informations lors du codage, on peut laisser des commentaires. Les lignes de commentaires commencent par un dièse : #.

Ces lignes seront ignorées lors de l'exécution.

# ceci est un commentaire

Un commentaire peut être mis en fin de ligne (attention de ne pas couper une ligne de commande en morceau).

echo "Bonjour Monde" # cette ligne écrit Bonjour Monde

Où en est-on ?

Nous avons donc un processus de création d'un script :

nano unScript

Notre script deviendra donc :

#!/bin/bash

echo "Bonjour Monde" # cette ligne écrit Bonjour Monde

exit 0

ctrl + x puis o puis entrée

puis on le rend exécutable

chmod +x unScript

puis on l'exécute

./unScript

 pour obtenir :

Bonjour Monde

Vous en savez maintenant suffisamment pour récupérer ou créer un script simple et l'exécuter.

Suite =>