Lorsque vous travaillez avec des commandes dans Bash, vous atteindrez un point où vous devez utiliser la sortie d'une commande donnée comme valeur pour une variable donnée. L'expansion de la commande est un terme utilisé pour se référer substitution de commandement où la sortie d'une commande donnée est utilisée à la place de la commande. Idéalement, la commande est exécutée et sa valeur remplace la commande, et dans la plupart des cas, elle est utilisée lorsque vous travaillez avec des variables.
L'expansion de la commande bash est utile lorsque vous devez utiliser une variable donnée dont les valeurs doivent encore être connues à moins que la commande ne s'exécute d'abord. Ce guide couvre divers exemples pour aider à comprendre comment travailler avec la substitution de la commande bash.
Comment utiliser l'extension de commande bash
L'expansion de la commande peut être utilisée de deux manières.
Vous pouvez l'enfermer comme dans la syntaxe ci-dessous:
$ (commande)
Alternativement, vous pouvez utiliser backtincs, comme indiqué ci-dessous.
'commande'
Lorsque vous utilisez la substitution bash dans un script, la sortie de la commande remplacera la commande lors de sa diffusion.
Par exemple, si vous avez besoin d'écrire une commande qui imprime la date et l'heure actuelles et la disponibilité lors de l'exécution du script, nous pourrions avoir un script écrit comme indiqué ci-dessous.
Nous avons créé une variable dans le script, mais sa valeur dépend de la sortie de la commande. De plus, nous imprimons la valeur de la variable déclarée en utilisant le écho commande. C'est un cas de substitution de commandement bash. Exécutons la commande et voyons comment elle se comporte.
Notez que toutes les lignes de fuite lors de l'impression de la sortie sont supprimées lorsque vous utilisez la substitution de commande. Par exemple, utilisons le Commande SEQ Pour imprimer des valeurs de 1 à 10, sautant deux valeurs. Si nous exécutons la commande ci-dessous, nous noterons que chaque nouvelle ligne est prise en compte.
$ seq 1 2 10
Cependant, si vous utilisez la substitution de commande par la même commande, la sortie serait différente à mesure que les nouvelles lignes sont supprimées.
Extension de commande de bash sur les boucles
Si vous avez un script donné qui devrait exécuter une tâche donnée, mais que les valeurs de cette variable dépendent de la sortie de la commande, vous pouvez utiliser l'extension bash. Par exemple, si vous aviez un fichier contenant les noms des adresses IP, vous pouvez exécuter un pour boucle Pour effectuer une tâche donnée en fonction des noms de ce fichier.
Le script ci-dessous ouvre un fichier à l'aide du chat Commande et imprime le contenu du fichier sur le shell actuel.
Voici la sortie confirmant que vous pouvez utiliser la substitution bash par des boucles.
Extension de commande et extension des paramètres
L'expansion de la commande bash est presque similaire à l'expansion des paramètres. En substitution bash, nous utilisons $ (), tandis que pour l'expansion des paramètres, nous utilisons $ . L'expansion des paramètres protège une variable de l'expansion de la commande. Ayons un exemple à comprendre.
Dans l'exemple ci-dessus, nous créons une variable nommée date. Si nous faisons écho à la variable en utilisant l'expansion des paramètres, nous obtenons que nous imprimons la valeur de la variable suivie du mot ajouté après la valeur de la variable.
Cependant, dans l'exemple de substitution de commande, nous voyons que la commande date, qui imprime la date et l'heure actuelles, est substituée et la sortie est utilisée à la place de la commande.
Donc, si vous ne voulez pas qu'une variable soit traitée comme un cas d'expansion de commande, utilisez $ au lieu de $ ().
Conclusion
L'expansion de la commande bash est la même que la substitution de commandement. Ce guide a expliqué ce que signifie l'expansion des commandes, et nous avons donné divers exemples pour aider à comprendre comment vous pouvez utiliser l'expansion des commandes pour vos scripts bash. La clé à retenir est que la substitution de commande est lorsque la sortie d'une commande est utilisée à la place de la commande elle-même lors de l'obtention ou de la définition de la valeur d'une variable.