GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser des variables dans les scripts Shell

Dans chaque programmation variables de langue joue un rôle important, dans les scripts shell Linux, nous utilisons deux types de variables :Variables définies par le système &Variables définies par l'utilisateur .

Une variable dans un script shell est un moyen de référencer un numérique ou valeur du caractère . Et contrairement aux langages de programmation formels, un script shell ne vous oblige pas à déclarer un type pour vos variables

Dans cet article, nous discuterons des variables, de leurs types et de la façon de définir et d'utiliser des variables dans les scripts shell.

Variables définies par le système :

Ce sont les variables qui sont créées et maintenues par le système d'exploitation (Linux) lui-même. Généralement ces variables sont définies en LETTRES MAJUSCULES . Nous pouvons voir ces variables en utilisant la commande "$ set “. Certaines des variables définies par le système sont données ci-dessous :

Pour imprimer la valeur des variables ci-dessus, utilisez la commande echo comme indiqué ci-dessous :

# echo $HOME
# echo $USERNAME

Nous pouvons exploiter ces variables d'environnement à partir de vos scripts en utilisant le nom de la variable d'environnement précédé du signe dollar. Ceci est démontré dans le script suivant :

$ cat monscript

#!/bin/bash
# affiche les informations utilisateur du système.
echo "Informations utilisateur pour l'ID utilisateur :$USER"
echo UID :$UID
echo HOME :$HOME

Remarquez que les variables d'environnement dans les commandes echo sont remplacées par leurs valeurs actuelles lorsque le script est exécuté. Notez également que nous avons pu placer le $USER variable système entre les guillemets doubles dans la première chaîne, et le script shell était toujours capable de comprendre ce que nous voulions dire. Il y a un inconvénient à utiliser cette méthode, cependant. Regardez ce qui se passe dans cet exemple :

$ echo "Le coût de l'article est de 15 $"
Le coût de l'article est de 5

Ce n'est évidemment pas ce qui était prévu. Chaque fois que le script voit un signe dollar entre guillemets, il suppose que vous faites référence à une variable. Dans cet exemple, le script a tenté d'afficher la variable $1 (qui n'a pas été défini), puis le chiffre 5. Pour afficher un signe dollar réel, vous devez précéder avec un caractère barre oblique inverse :

$ echo "Le coût de l'article est de \$15"
Le coût de l'article est de 15$

C'est mieux. La barre oblique inverse permettait au script shell d'interpréter le signe dollar comme un signe dollar réel, et non comme une variable.

Variables définies par l'utilisateur :

Ces variables sont définies par les utilisateurs . Un script shell nous permet de définir et d'utiliser nos propres variables au sein du scénario. La définition de variables vous permet de stocker temporairement des données et l'utiliser tout au long du script, faisant du script shell un véritable programme informatique.

Variables utilisateur peut être n'importe quelle chaîne de texte contenant jusqu'à 20 lettres , chiffres , ou un caractère de soulignement . Les variables utilisateur sont sensibles à la casse, de sorte que la variable Var1 est différente de la variable var1. Cette petite règle pose souvent des problèmes aux programmeurs de scripts novices.

Les valeurs sont attribuées aux variables utilisateur à l'aide d'un signe égal. Aucun espace ne peut apparaître entre la variable, le signe égal et la valeur (un autre point névralgique pour les novices). Voici quelques exemples d'attribution de valeurs aux variables utilisateur :

var1=10
var2=-57
var3=testing
var4="encore plus de tests"

Le script shell détermine automatiquement le type de données utilisé pour la valeur de la variable. Les variables définies dans le script shell conservent leurs valeurs pendant toute la durée de vie du script shell mais sont supprimées lorsque le script shell se termine.

Tout comme les variables système, les variables utilisateur peuvent être référencées à l'aide du signe dollar :

$ cat test3
#!/bin/bash
# variables de test
days=10
guest=”Katie”
écho "$invité s'est enregistré il y a $jours jours"
jours=5
invité="Jessica"
écho "$invité s'est enregistré il y a $jours jours"
$

L'exécution du script produit le résultat suivant :
$ chmod u+x test3
$ ./test3
Katie s'est enregistrée il y a 10 jours
Jessica est arrivée il y a 5 jours
$

Chaque fois que la variable estréférencée , il produit la valeur qui lui est actuellement affectée. Il est important de se rappeler que lorsque vous faites référence à une valeur de variable, vous utilisez le signe dollar , mais lorsque vous faites référence à la variable pour lui attribuer une valeur, vous n'utilisez pas le signe dollar. Voici un exemple de ce que je veux dire :

$ cat test4
#!/bin/bash
# affectation d'une valeur de variable à une autre variable
valeur1=10
valeur2 =$value1
echo La valeur résultante est $value2
$

Lorsque vous utilisez la valeur de la valeur1 variable dans l'instruction d'affectation, vous devez toujours utiliser le signe dollar. Ce code produit la sortie suivante :

$ chmod u+x test4
$ ./test4
La valeur résultante est 10
$

Si vous oubliez le signe dollar et que la ligne d'affectation value2 ressemble à :

value2=value1
vous obtenez le résultat suivant :
$ ./test4
La valeur résultante est value1
$

Sans le signe dollar, le shell interprète le nom de la variable sous la forme d'une chaîne de texte normale , ce qui n'est probablement pas ce que vous vouliez.

Utilisation du symbole Backtick (`) dans les variables shell :

Le backtick permet vous permet d'affecter la sortie d'une commande shell à une variable. Bien que cela ne semble pas beaucoup, c'est un élément majeur du script  programmation. Vous devez entourer toute la commande de ligne de commande avec des caractères de backtick :

testing=`date`

Le shell exécute la commande dans les backticks et affecte la sortie à la variable testing. Voici un exemple de création d'une variable à l'aide de la sortie d'une commande shell normale :

$ cat test5
#!/bin/bash
# en utilisant le caractère backtick
testing=`date`
echo " La date et l'heure sont :” $testing
$

La variable testing reçoit la sortie de la commande date, et elle est utilisée dans l'instruction echo pour l'afficher. L'exécution du script shell produit la sortie suivante :

$ chmod u+x test5
$ ./test5
La date et l'heure sont :lundi 31 janvier 20:23:25 EDT 2011

Remarque :En bash, vous pouvez également utiliser l'alternative $(…) syntaxe à la place du backtick (`), qui a l'avantage d'être réentrant.

Exemple :$ echo ” La date et l'heure d'aujourd'hui sont : " $(date)
La date et l'heure d'aujourd'hui sont :Dim 27 juillet 16:26:56 IST 2014

Lire aussi  : 9 exemples de commande 'diff' sous Linux


Linux
  1. Comment utiliser un mot de passe crypté dans le script Linux Bash Shell

  2. Comment définir et utiliser des fonctions dans Linux Shell Script

  3. Comment gérer les commutateurs dans un script shell ?

  4. Comment créer un fichier temporaire en script shell ?

  5. Dois-je utiliser Apt ou Apt-get dans les scripts Shell ?

Comment utiliser la commande de date dans les scripts bash sous Linux

Comment écrire un script shell dans Ubuntu

Comment installer et utiliser Nu Shell sous Linux

Qu'est-ce que Shebang dans Linux Shell Scripting ?

Comment utiliser if-else dans les scripts shell ?

Comment exécuter une commande dans un script shell ?