Lorsque vous exécutez une commande, elle produit une sorte de sortie :soit le résultat qu'un programme est supposé produire, soit des messages d'état/d'erreur des détails d'exécution du programme. Parfois, vous souhaiterez peut-être stocker la sortie d'une commande dans une variable à utiliser dans une opération ultérieure.
Dans cet article, nous passerons en revue les différentes manières d'affecter la sortie d'une commande shell à une variable, particulièrement utile à 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 commande.
Dans ce premier exemple, nous allons stocker la valeur de who
(qui montre qui est connecté au système) commande dans la variable CURRENT_USERS
utilisateur :
$ 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 :le drapeau -e
signifie interpréter toutes les séquences d'échappement (telles que \n
pour la nouvelle ligne) utilisé. Pour éviter de perdre du temps et 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, pour démontrer le concept en utilisant le deuxième formulaire ; 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'assignation de la sortie d'une commande shell à une variable. Vous pouvez ajouter vos réflexions à ce message via la section de commentaires ci-dessous.