Recherche de site Web

Comment attribuer la sortie d'une commande Linux à une variable


Lorsque vous exécutez une commande, elle produit une sorte de sortie : soit le résultat d'un programme est censé produire, soit des messages d'état/d'erreur sur les détails de l'exécution du programme. Parfois, vous souhaiterez peut-être stocker le résultat d’une commande dans une variable pour être utilisée lors d’une opération ultérieure.

Dans cet article, nous passerons en revue les différentes manières d'attribuer la sortie d'une commande shell à une variable, particulièrement utiles à des fins de script shell.

Pour stocker la sortie d'une commande dans une variable, vous pouvez utiliser la fonctionnalité de substitution de commande shell dans les formulaires ci-dessous :

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

Vous trouverez ci-dessous quelques exemples d'utilisation de la substitution de commandes.

Dans ce premier exemple, nous stockerons la valeur de la commande who (qui montre qui est connecté au système) dans la variable CURRENT_USERS user :

CURRENT_USERS=$(who)

Ensuite, nous pouvons utiliser la variable dans une phrase affichée à l'aide de la commande echo comme ceci :

echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

Dans la commande ci-dessus : l'indicateur -e signifie interpréter toutes les séquences d'échappement (telles que \n pour la nouvelle ligne) utilisées. Pour éviter de perdre du temps ainsi que de la mémoire, effectuez simplement la substitution de commande dans la commande echo comme suit :

echo -e "The following users are logged on the system:\n\n $(who)"

Ensuite, démontrer le concept en utilisant la deuxième forme ; nous pouvons stocker le nombre total de fichiers dans le répertoire de travail actuel dans une variable appelée FILES et écho plus tard comme suit :

FILES=`sudo find . -type f -print | wc -l`
echo "There are $FILES in the current working directory."

C'est tout pour l'instant, dans cet article, nous avons expliqué les méthodes d'affectation de la sortie d'une commande shell à une variable. Vous pouvez ajouter vos réflexions à cet article via la section commentaires ci-dessous.