15/11/2024

Bash

Bash : comment stocker le résultat d’une commande dans une variable ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à stocker le résultat d'une commande Linux dans une variable. Cette manipulation simple est très utile lors d'écriture de scripts Bash (avec l'extension.sh) car il peut arriver que l'on ait besoin de manipuler le résultat d'une commande. Dans ce cas, on affecte le résultat de la commande à une variable, ce qui permet de l'exploiter par la suite.

Version initiale de l'article : 11 février 2012.

II. La syntaxe : affecter le résultat d'une commande à une variable

Pour stocker le résultat d'une commande dans une variable, on utilisera la syntaxe suivante :

variable=$(commande);

Ainsi, le résultat de n'importe quelle commande se retrouve dans une variable que l'on peut découper, modifier, afficher... Libre à vous de choisir le nom que vous souhaitez pour cette variable.

III. Exemple

Prenons un exemple concret. La première chose à faire, c'est déterminer la commande et vérifier sa syntaxe. Ensuite, quand la syntaxe de la commande est valide, nous pouvons faire en sorte de stocker son résultat dans une variable.

Imaginons que l'on souhaite récupérer la date d'hier sous la forme "<jour><mois>.<année>". On va pouvoir utiliser la commande date pour obtenir cette information :

date -d "1 day ago" +%d%b%Y

Ce qui retourne :

14sept.2022

C'est correct. Autre format possible : "<Année><Mois><Jour>", ce qui donne :

date -d "1 day ago" +%Y%m%d

Comme résultat :

20220914

Gardons à l'esprit que c'est le résultat de la commande "date -d "1 day ago" +%d%b%Y" que nous souhaitons stocker dans une variable. On commence par créer un fichier avec l'extension .sh et on ajoute le Shebang :

#/bin/bash

Ensuite, nous allons créer une variable nommée "Yesterday" qui contiendra le résultat de la commande évoquée précédemment.

#/bin/bash 
Yesterday=$(date -d "1 day ago" +%d%b%Y);

Il est important d'encadre la commande dans un bloc "$()", comme dans l'exemple ci-dessus.

Ensuite, nous pouvons réutiliser cette variable comme bon nous semble... Par exemple, on peut créer un dossier qui prend comme nom le contenu de cette variable :

#/bin/bash 
Yesterday=$(date -d "1 day ago" +%d%b%Y);
mkdir /home/$Yesterday

Quand on appelle la variable, il est impératif de préfixer son nom par le symbole "$" afin que le nom de la variable soit remplacé par sa valeur. Grâce à ce script, on crée un dossier dans "/home/" qui sera nommé avec la date d'hier. Ceci n'est bien sûr qu'un exemple ! A vous de jouer !

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.