Affaire une sortie de commande à la variable

Affaire une sortie de commande à la variable
Différents types de commandes bash doivent être exécutés à partir du terminal en fonction des exigences de l'utilisateur. Lorsque l'utilisateur exécute une commande à partir du terminal, il affiche la sortie si aucune erreur n'existe sinon elle affiche le message d'erreur. Parfois, la sortie de la commande doit être stockée dans une variable pour une utilisation future. La caractéristique de substitution de la commande shell de bash peut être utilisée à cet effet. Comment vous pouvez stocker différents types de commandes de shell dans la variable à l'aide de cette fonctionnalité est affichée dans ce tutoriel.

Syntaxe de substitution de commande:

variable = $ (commande)
variable = $ (commande [option…] arguments1 arguments2…)
variable = $ (/ path / to / command)

OU

variable = 'Command'
variable = 'commande [option…] arguments1 arguments2…'
variable = '/ path / to / command'

*** Remarque: n'utilisez aucun espace avant et après le signe égal lors de l'utilisation des commandes ci-dessus.

Sortie de commande unique à une variable

Les commandes bash peuvent être utilisées sans aucune option et argument pour les commandes où ces pièces sont facultatives. Les deux exemples suivants montrent les utilisations de la substitution de commande simple.

Exemple 1:

bash 'date' La commande est utilisée pour afficher la date et l'heure actuelles. Le script suivant stockera la sortie de 'date' commander en $date actuelle variable en utilisant la substitution de commande.

$ current_date = $ (date)
$ echo "aujourd'hui est $ current_date"

Sortir:

Exemple n ° 2:

'Pwd' La commande affiche le chemin du répertoire de travail actuel. Le script suivant stocke la sortie de 'Pwd' Commande dans la variable, $ current_dir et la valeur de cette variable est imprimée en utilisant 'écho' commande.

$ current_dir = 'pwd'
$ echo "Le répertoire actuel est: $ current_dir"

Sortir:

Commande avec l'option et l'argument

L'option et l'argument sont obligatoires pour certaines commandes bash. Les exemples suivants montrent comment vous pouvez stocker la sortie de la commande avec l'option et l'argument dans une variable.

Exemple # 3:

Bash 'toilettes' La commande est utilisée pour compter le nombre total de lignes, de mots et de caractères de tout fichier. Cette commande utilise -c, -w et -l comme option et nom de fichier comme argument pour générer la sortie. Créer un fichier texte nommé des fruits.SMS avec les données suivantes pour tester le script suivant.
des fruits.SMS

mangue
Orange
Banane
Raisin
Goyave
Pomme

Exécutez les commandes suivantes pour compter et stocker le nombre total de mots dans le des fruits.SMS filer dans une variable, $ count_words et imprimez la valeur en utilisant 'écho' commande.

$ count_words = 'wc -w fruits.SMS'
$ echo "Total des mots en fruits.txt est $ count_words "

Sortir:

Exemple n ° 4:

'couper' est une autre commande bash qui utilise l'option et l'argument pour générer la sortie. Créer un fichier texte nommé jour de la semaine.SMS avec des noms de sept semaines pour exécuter le script suivant.

jour de la semaine.SMS

Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi
Dimanche

Créer un fichier bash nommé CMDSUB1.shot avec le script suivant. Dans ce script, alors que la boucle est utilisée pour lire le contenu de jour de la semaine.SMS Fichier ligne par ligne et lire les trois premiers caractères de chaque ligne en utilisant 'couper' commande. Après coupure, la valeur de la chaîne est stockée dans la variable $ jour. Ensuite, si l'instruction est utilisée pour vérifier la valeur de $ jour est 'Soleil' ou non. La sortie imprimera 'Le dimanche est les vacances'Quand si la condition est vraie sinon elle imprimera la valeur de $ jour.

CMDSUB1.shot

#!/ bac / bash
filename = 'en semaine.SMS'
en lisant la ligne; faire
day = 'echo $ line | Cut -C 1-3 '
Si [$ day == "Sun"]
alors
Echo "Le dimanche est les vacances"
autre
Echo $ day
Fi
fait<$filename

Exécutez le script.

$ Cat en semaine.SMS
$ bash cmdsub1.shot

Sortir:

Utilisation de la substitution de commande en boucle

Vous pouvez stocker la sortie de la substitution de commande dans n'importe quelle variable de boucle qui est affichée dans l'exemple suivant.

Exemple n ° 5:

Créer un fichier nommé CMDSUB2.shot avec le code suivant. Ici, 'ls -d * /'La commande est utilisée pour récupérer toute la liste des répertoires à partir du répertoire actuel. Car Loop est utilisé ici pour lire chaque répertoire à partir de la sortie et le stocker dans la variable $ dirname qui est imprimé plus tard.

CMDSUB2.shot

#!/ bac / bash
pour dirname dans $ (ls -d * /)
faire
écho "$ dirname"
fait

Exécutez le script.

$ bash cmdsub2.shot

Sortir:

Utilisation de commandes imbriquées

Comment vous pouvez utiliser plusieurs commandes à l'aide de tuyaux (|) est affiché dans l'exemple précédent. Mais vous pouvez utiliser des commandes imbriquées dans la substitution de commande où la sortie de la première commande dépend de la sortie de la deuxième commande et elle fonctionne en face de la commande de tuyau (|).

Syntaxe de commande imbriquée:

var = 'Command1 \' Command \ "

Exemple # 6:

Deux commandes, 'écho' et 'OMS'sont utilisés dans cet exemple comme commande imbriquée. Ici, 'OMS'La commande exécutera d'abord qui imprime les informations de l'utilisateur sur l'utilisateur actuellement connecté. La sortie du 'OMS'La commande sera exécutée par'écho«Commande et sortie de»écho'sera stocké dans la variable $ var. Ici, la sortie de 'écho'La commande dépend de la sortie de'OMS' commande.

$ var = 'echo \' who \ "
$ echo $ var

Sortir:

Utilisation du chemin de commande

Si vous connaissez le chemin de la commande, vous pouvez exécuter la commande en spécifiant le chemin de commande lorsque vous utilisez la substitution de commande. L'exemple suivant montre l'utilisation du chemin de commande.

Exemple # 7:

'qui suis je' La commande affiche le nom d'utilisateur de l'utilisateur actuellement connecté. Par défaut, cette commande est stockée dans / /usr /poubelle/ dossier. Exécutez le script suivant pour exécuter 'qui suis je' commande en utilisant le chemin et stocker dans la variable, $ sortie, et imprimer la valeur de $ sortie.

$ output = $ (/ usr / bin / whoami)
$ echo $ sortie

Sortir:

Utilisation de l'argument de la ligne de commande

Vous pouvez utiliser l'argument de la ligne de commande avec la commande comme argument dans la substitution de commande.

Exemple # 8:

Créer un fichier bash nommé CMDSUB3.shot avec le script suivant. 'nom de base'La commande est utilisée ici pour récupérer le nom de fichier du 2nd argument de la ligne de commande et stocké dans la variable, $ nom de fichier. Nous connaissons le 1St L'argument de la ligne de commande est le nom du script d'exécution qui est indiqué par 0 $.

#!/ bac / bash
FileName = 'Basename 1 $'
Echo "Le nom du fichier est $ nom de fichier."

Exécutez le script avec la valeur d'argument suivante.

$ bash cmdsub3.SH Bureau / Temp / Hello.SMS

Ici, le nom de base du chemin, Desktop / Temp / Hello.SMS est 'Bonjour.SMS'. Donc, la valeur du $ nom de fichier sera Bonjour.SMS.

Sortir:

Conclusion:

Diverses utilisations des substitutions de commande sont affichées dans ce tutoriel. Si vous devez travailler avec plusieurs commandes ou dépendre des commandes et stocker le résultat temporaire pour effectuer d'autres tâches plus tard, vous pouvez utiliser cette fonctionnalité dans votre script pour obtenir la sortie.

Plus d'informations dans la vidéo: