Comment enregistrer la sortie de la commande en tant que variable dans Bash ? Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

Comment enregistrer la sortie de la commande en tant que variable dans Bash ?

Introduction

Dans les scripts bash, l'affectation de la sortie d'une commande à des variables peut être pratique en stockant les sorties des commandes et en les utilisant plus tard.

Dans ce petit guide, nous verrons comment vous pouvez stocker la sortie d'une commande en tant que variable dans Bash.

Les bases pour configurer des variables

L'enregistrement de la sortie d'une commande en tant que variable est réalisé via substitution de commande. La substitution de commande est un wrapper qui exécute la commande dans un environnement de sous-shell, et remplace la commande encapsulée par la sortie standard de l'environnement dans lequel la commande a été exécutée. Cette sortie peut ensuite être référencée ultérieurement, si elle est connectée à une variable de référence !

La substitution de commande peut être obtenue à l'aide de backticks ou du signe dollar entre parenthèses :

`command`

$(command)

Il y a débat pour savoir si `commande` (backticks) ou $(commande) (signe dollar et parenthèses) doit être utilisé comme la « meilleure pratique ». $(command) fonctionne bien dans l'imbrication et améliore la lisibilité dans certains cas, mais vous pouvez utiliser l'une ou l'autre syntaxe dans les exemples suivants.

Cela étant dit, affecter la sortie d'une commande à une variable dans Bash est aussi simple que :

VARIABLE=$(command)
echo "${VARIABLE}"

Fonctionnement ${variable} comme cela est connu expansion des paramètres, et est utilisé pour évaluer et récupérer la valeur associée à une variable de référence.

Examinons maintenant l'exemple simple de configuration d'une variable pour qu'une commande modifie la couleur de sortie :

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

Dans l'extrait, nous avons utilisé le tput commande et assigné la valeur renvoyée de ces commandes pour imprimer du texte coloré. La setaf change la couleur de premier plan, et 3 (vert) et 9 (orange) sont des codes de couleur.

Passons maintenant à un autre exemple qui contient plusieurs conditions pour configurer des variables pour différentes commandes :

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

Dans le script ci-dessus, le whoami La commande renvoie le nom d'utilisateur de l'utilisateur actuel. La uname -a renvoie les informations système, et le date renvoie l'heure et la date actuelles.

Remarque: Nous pouvons chaîner l'affectation de variables en ajoutant plusieurs commandes dans un seul appel imbriqué. La CREATE variable contient la sortie de la touch commande, qui à son tour crée un fichier et définit le nom de fichier sur la sortie de la date +"%d%m%Y commander.

Consultez notre guide pratique et pratique pour apprendre Git, avec les meilleures pratiques, les normes acceptées par l'industrie et la feuille de triche incluse. Arrêtez de googler les commandes Git et en fait apprendre il!

Enfin, nous ajoutons un multiline concept d'affectation de variable de commande en ajoutant une barre oblique inverse () entre le ls commander -l drapeau pour afficher uniquement les fichiers texte en utilisant *.txt. La barre oblique inverse est un caractère d'échappement qui informe le shell de ne pas interpréter le caractère suivant.

Dans le echo commande, nous avons ajouté la -e flag pour utiliser le caractère spécial, c'est-à-dire, n (newline), pour imprimer la sortie dans la nouvelle ligne.

Nous obtenons le résultat suivant après l'exécution du script :

$ ./variable.sh

Conclusion

Dans ce petit guide, nous avons examiné comment définir la sortie d'une commande sur une variable dans Bash. Nous avons examiné la différence entre les syntaxes pour substitution de commande, notant les améliorations de lisibilité de $(command) sur la substitution basée sur le backtic. Ensuite, nous avons examiné plusieurs exemples d'affectation simple et d'affectation de sortie chaînée/imbriquée.

Horodatage:

Plus de Stackabuse