PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

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

jeudi 15 septembre 2022 à 07:15

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 !

The post Bash : comment stocker le résultat d’une commande dans une variable ? first appeared on IT-Connect.