Recherche de site Web

Comprendre et écrire des « variables Linux » dans les scripts Shell - Partie 10


Le langage de script shell Linux a toujours été un sujet brûlant et le sera toujours dans le futur. Le langage de script Shell est magique et il est si facile de créer un programme en langage de script comme dans n'importe quel autre langage. Cependant, cela nécessite une connaissance approfondie de ce que nous faisons et du résultat attendu.

Tous les articles sur les scripts shell que nous avons écrits pour nos lecteurs sont très appréciés, y compris le dernier « Un aperçu des variables Linux ». Nous étendons le dernier article à un nouveau niveau.

Attributs variables

Chaque variable dans l'environnement Linux possède certaines options, appelées « attributs ». Ces options ou attributs peuvent être activés On et Off, lorsque cela est requis selon la situation à l'aide d'une commande « declare ».

Un exemple d'attribut de variable utilise un commutateur, par exemple « -i » qui activera l'attribut entier pour la variable correspondante. Même si une valeur non numérique est transmise au commutateur « -i », elle ne générera pas de message d'erreur et n'affichera pas « 0 » comme interprétation entière. Ici, cela devient plus clair à partir de l’exemple ci-dessous.

Déclarez une variable Integer, bill=121

avi@localhost:~$ declare -i bill=121

Imprimer la valeur de la facture variable.

avi@localhost:~$ printf "%d\n" "$bill" 

121

Laissez la valeur de la variable être une chaîne. La facture variable est déjà déclarée, inutile de la déclarer une deuxième fois. Changez simplement la valeur de la variable as.

avi@localhost:~$ bill=tecmint

Maintenant, imprimez à nouveau la valeur de la facture variable.

avi@localhost:~$ printf "%d\n" "$bill" 

0

Notez « 0 » à la place du message d'erreur.

Maintenant, la question est, comment connaître les attributs des variables déjà déclarées ?
avi@localhost:~$ declare -p bill 

declare -i bill="121"

Ici, un commutateur -p (signifie print) vient à la rescousse.

Encore une fois, que dois-je faire pour désactiver les attributs d'une variable ?

Pour désactiver les attributs d'une variable, il suffit de mettre un signe + (plus) juste avant le changement. Ici, c'est plus clair à partir de l'exemple ci-dessous.

Désactivez Désactiver l'attribut entier pour la variable ci-dessus.

avi@localhost:~$ declare +i bill

Vérifiez la valeur de la variable.

avi@localhost:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Imprimez maintenant la valeur de la variable en utilisant la chaîne de commutation.

avi@localhost:~$ printf "%s\n" "$bill" 

tecmint

Ici, dans l'exemple ci-dessus, bash n'a pas pu juger une valeur non numérique comme une erreur, cependant printf interprète ce qui pourrait être un nombre et ce qui ne pourrait pas l'être.

Variables en lecture seule

Vous avez peut-être entendu parler de mémoire en lecture seule (ROM), mais qu'est-ce qu'une variable en lecture seule ? Y a-t-il une similitude avec la ROM ?

Eh bien, les variables en lecture seule comme la mémoire en lecture seule sont quelque chose dont la valeur ne peut pas être modifiée une fois attribuée. C'est pourquoi on l'appelle en lecture seule. Vous ne pouvez pas écrire, éditer ou modifier une nouvelle valeur pour cette variable. Voici une illustration à l’aide d’un exemple.

Décalez un nom de variable en lecture seule (-r), dont la valeur est « linux-console.net ».

avi@localhost:~$ declare -r name="linux-console.net"

Imprimer la valeur de la variable déclarée ci-dessus.

avi@localhost:~$ printf "%s\n" "$name" 

linux-console.net

Essayez de changer la valeur de la variable.

avi@localhost:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Comme indiqué ci-dessus, les attributs d'une variable en lecture seule peuvent être modifiés à l'aide du signe « + ».

Exportation de variables sous Linux

Toutes les variables shell déclarées dans un script shell sont disponibles jusqu'à l'exécution du script. En dehors du script, la variable du script n'existe pas. Le processus de mise à disposition de variables en dehors du script est appelé exportation de variables.

Une variable peut être exportée en dehors du shell en utilisant le commutateur declare -x (export), qui reconnaît au shell ce que vous vouliez exporter. Un commutateur de déclaration d'exportation peut être utilisé comme.

avi@localhost:~$ declare -x variable=”Constant_Value”

Toutes les modifications apportées à la variable pendant l'exécution du script sont perdues lorsque la variable est exportée en dehors du script. L'exportation de variables est très importante dans les scripts shell.

Nous voulons avoir une variable qui doit être en lecture seule et disponible en dehors du script, nous devons utiliser le commutateur -r et le commutateur -x en même temps.

avi@localhost:~$ declare -rx variable=”Constant_Value”

Variables d'environnement

Les variables partagées entre le programme et le programme qui les exécute. Les variables d'environnement peuvent être exportées mais les attributs ne peuvent pas leur être attribués.

Comprendre la théorie ci-dessus de manière pratique. Ici, nous avons deux scripts 0.sh et 1.sh.

0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

Et le deuxième script l'est.

1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=linux-console.net 
printf "%s\n" "$name"
exit 0

Ici, ce qui se passe, c'est qu'une variable (nom) est déclarée en lecture seule et exportée et immédiatement après que ce deuxième script soit appelé.

Le deuxième script vient d'imprimer la variable du premier script qui a été exportée dans la première instruction printf. Dans la deuxième instruction printf, elle affiche la nouvelle valeur attribuée à la variable « nom ».

Ne vous inquiétez pas, la variable était en lecture seule, comment peut-elle être réaffectée. Ne vous souvenez-vous pas que « Toutes les modifications apportées à la variable pendant l'exécution du script sont perdues lorsque la variable est exportée en dehors du script. »

Les références

La commande declare autorise tous les commutateurs ci-dessous ainsi que leur combinaison.

  1. -a : Déclare un tableau.
  2. -f : Fonction d'affichage et définition.
  3. -F : Afficher le nom de la fonction.
  4. -r : Déclare la variable en lecture seule.
  5. -x : Déclarez la variable comme exportable.
  6. -I : Déclare la variable comme Integer.

C'est tout pour le moment. Dans le tout prochain article, nous discuterons des moyens de remplacer les variables à l'aide de la commande 'eval' et des variables déjà définies dans bash avant de fermer ce sujet. J'espère que vous appréciez votre voyage vers l'approfondissement des scripts. D'ici là, restez à l'écoute et connecté à linux-console.net.