Substitution variable imbriquée et variables de bash prédéfinies dans Linux - partie 11

Substitution variable imbriquée et variables de bash prédéfinies dans Linux - partie 11

Les deux derniers articles sur Bash Shell, où nous avons discuté des variables en détail ont été très appréciés parmi nos lecteurs. Nous en tant que Équipe de Tecmint sont très désireux de vous fournir des sujets les plus récents, à jour et pertinents couverts de détails. De plus, nous essayons toujours de toucher des perspectives majeures des sujets correspondants.

Variables imbriquées dans les scripts de coquille

Voici le dernier article sur les variables Linux où nous allons voir la substitution des variables et les variables définies dans Shell avant de fermer ce sujet.

Bash effectue une substitution variable avant que la commande ne soit vraiment exécutée. Le shell Linux Bash recherche tous les signes '$' avant d'exécuter la commande et le remplacer par la valeur de la variable. Le processus de substitution variable bash n'est effectué qu'une seule fois. Et si nous avons des variables imbriquées?

Note: Par variable imbriquée, nous entendons, variable déclarée à l'intérieur de la variable. Voyons le scénario ci-dessus dans l'exemple ci-dessous.

Déclarer une variable en lecture seule et exécutable comme ci-dessous.

[Protégé par e-mail]: ~ $ Declare -rx Linux_best_website = "www.Tecmint.com "

Vérifiez la valeur de la variable stockée.

[Protégé par e-mail]: ~ $ printf "% s" "$ linux_best_website" www.Tecmint.com

Déclarez maintenant une autre variable qui est à nouveau en lecture seule et exécutable.

[Protégé par e-mail]: ~ $ Declare -rx Linux_website = "Linux_best_website"

Maintenant, la situation est, nous avons défini deux variables.

'Linux_best_website', dont la valeur est «www.Tecmint.com »
et, «Linux_website», dont la valeur est «Linux_best_website»

Quel serait le résultat si nous exécutons la commande inférieure à une ligne?

[Protégé par e-mail]: ~ $ printf "% s" "$ linux_website"

Il devrait d'abord remplacer la variable '$ Linux_website', avec valeur "Linux_best_website" et puis "$ Linux_best_website"Est à nouveau une variable dont la valeur est"www.Tecmint.com". Ainsi, la sortie finale de l'exécution de la commande ci-dessous devrait être.

[Protégé par e-mail]: ~ $ printf "% s" "$ linux_website" www.Tecmint.com

Mais malheureusement, ce n'est pas la situation, la sortie que nous obtenons est Linux_best_website.

Raison? Ouais! Bash substituer la valeur de la variable une seule fois. Qu'en est-il des scripts et programmes complexes où nous devons remplacer fréquemment les variables et devoir remplacer la variable plus d'une fois?

Voici la commande 'évaluer'qui effectue un travail supplémentaire de substitution variable plus d'une fois dans un script. Voici un exemple pour rendre l'ensemble qui fonctionne aussi clair que le verre.

Déclarer une variable X, dont la valeur est dix.

[Protégé par e-mail]: ~ / Desktop $ Declare x = 10

Vérifiez la valeur de la variable X, Nous venons de définir.

[Protégé par e-mail]: ~ / Desktop $ echo $ yx x10

Déclarer une variable y, dont la valeur est X.

[Protégé par e-mail]: ~ / Desktop $ Declare y = x

Vérifiez la valeur de la variable y, Nous venons de définir.

[Protégé par e-mail]: ~ / Desktop $ echo $ y x

Voici le problème de FRAPPER substitution variable à une fois, qui n'effectue pas un cycle supplémentaire de substitution variable. Nous utilisons 'évaluer'commande pour résoudre ce problème.

[Protégé par e-mail]: ~ / Desktop $ eval y = $ x

Vérifiez maintenant la valeur de la variable 'y'.

[Protégé par e-mail]: ~ / Desktop $ echo $ y 10

Hourra! Le problème a été résolu et 'évaluer'Command a gagné la course :)

Sans parler de, 'évaluer'La commande est très utile dans les programmes de grands scripts et est un outil très pratique.

La dernière mais pas la moindre partie de ce post est les variables prédéfinies. Non! Ne pas avoir de panique en voyant cette liste. Vous n'avez jamais besoin de vous souvenir de toute la liste avant de commencer à écrire des scripts sauf quelques-uns. Dans le cadre du processus d'apprentissage, nous présentons la liste des variables prédéfinies bash.

Non. Variable de bash RÉSULTAT
1 AUTO_ RESUME Processus d'achèvement de la commande pour les travaux arrêtés.
2 FRAPPER Chemin de la coquille.
3 Bash_env Affiche le nom du fichier de profil
4 Bash_version Montre la version de Bash
5 Bash_versinfo Affiche des informations détaillées sur la version.
6 Bash_versinfo [0] Le numéro de version principale (la version).
7 Bash_versinfo [1] Le numéro de version mineure (la version).
8 Bash_versinfo [2] Le niveau du patch.
9 Bash_versinfo [3] La version de construction.
dix Bash_versinfo [4] Le statut de libération (par exemple, Beta1).
11 Bash_versinfo [5] La valeur de MachType .
12 Cdpath Liste des répertoires séparés par Colon.
13 COLONNES Nombre de caractères par ligne sur la sortie standard.
14 Euid ID utilisateur de l'utilisateur actuel.
15 Fcedit L'éditeur de texte par défaut pour la commande fc.
16 Funcname Le nom du plaisir
17 GROUPES Groupes dont l'utilisateur est membre.
18 Histfile Le fichier contenant l'historique des commandes.
19 MAISON Le nom de votre répertoire domestique.
20 LIGNES Nombre de lignes horizontales sur la sortie standard.
21 POSTER Nom d'un fichier pour vérifier le courrier entrant
22 Ostype Nom du système d'exploitation.
23 Oldpwd Le répertoire de travail précédent
24 PWD Le répertoire de travail actuel
25 ALÉATOIRE Imprime un nombre aléatoire
26 COQUILLE La coque préférée à utiliser
27 FORMAT DE L'HEURE Le format pour la commande temporelle.
28 Uid L'ID de l'utilisateur actuel

Il existe une énorme liste de variables bash prédéfinies. Nous avons essayé de produire une liste des plus fréquemment utilisés.

C'est tout pour le moment. Je reviendrai ici avec un autre article intéressant. Jusque-là, restez à l'écoute et connecté à Tecmint. N'oubliez pas de nous fournir vos précieux commentaires dans la section des commentaires ci-dessous.