Les scripts shell sont assez couramment utilisés pour automatiser des choses sous Linux. Il est utilisé non seulement à des fins d'administration du système et du serveur, mais également par les utilisateurs réguliers de Linux pour automatiser les tâches quotidiennes sur leurs systèmes.
Un script shell n'est rien d'autre qu'une séquence de commandes; lequel un interpréteur de ligne de commande (par exemple Bash , Zsh ) fonctionnera. Outre la séquence de commandes, il existe des fonctionnalités telles que les boucles , instructions conditionnelles , variables qui peut être utilisé dans un script shell.
L'une de ces fonctionnalités consiste à stocker une commande entière dans une variable. Voyons ce que nous entendons par là et comment cela peut être fait.
Fondamentalement, les shells Linux vous permettent de stocker n'importe quelle commande dans une variable, sous forme de chaîne. Ceci est utile pour les instructions complexes en ligne impliquant plusieurs commandes, redirections, etc. Cette variable peut ensuite être transmise au programme 'eval ‘ pour que le contenu de la variable soit exécuté comme une commande.
Par exemple, pour stocker la sortie de la commande ‘cat test.txt | wc -l ' dans une variable appelée 'cnt ', nous pouvons avoir l'instruction suivante dans le test.sh fichier de script :
#!/bin/bash cnt="cat test.txt | wc -l"
Maintenant, pour exécuter cette commande à tout moment, nous passons la variable comme argument à 'eval ', comme indiqué ci-dessous :
#!/bin/bash cnt="cat test.txt | wc -l" eval $cnt
Enregistrez et quittez le script.
Exécutons maintenant la commande et le script lui-même pour vérifier cela.
$ cat test.txt | wc -l $ chmod + test.sh $ ./test.sh
Comme le montre la capture d'écran ci-dessus, les deux résultats sont identiques.
Conclusion
Dans cet article, nous avons vu comment stocker une commande Linux en tant que variable dans le script shell. Bien que cela ait été montré dans le script shell, vous pouvez également faire la même chose sur la ligne de commande, puis passer la variable à 'eval ‘.
Si vous avez des questions ou des commentaires, faites-le nous savoir dans les commentaires ci-dessous !