Les variables, variables systèmes, variables créées, variables locales

Une variable est un emplacement dans lequel on va mettre un valeur. Cette valeur peut être inconnue au moment de coder mais définissable selon l'exécution.un $ devant le nom permet d'utiliser la valeur de notre variable

Mettons "Bonjour Monde" dans une variable et affichons la :

maVariable="Bonjour Monde"

pour avoir

#!/bin/bash

maVariable="Bonjour Monde"

echo "$maVariable"

exit 0

 Certaines variables sont gérées par le système et peuvent être appelées de la même façon que celles créées dans le script... il suffit de les connaître et les afficher avec echo.

Parmi celles ci :

$HOME (votre dossier personnel... celui de l'utilisateur courant)

qu'on affichera avec

echo $HOME

lien vers la doc

USERNAME nom_utilisateur Le nom de l'utilisateur actuellement connecté. Cette variable est définie par le système.Vous ne devriez certainement pas changer sa valeur manuellement.
LOGNAME nom_utilisateur Similaire à USER, certains programmes utilisent celle-ci de préférence à USER
HOME /home/utilisateur Emplacement du répertoire personnel de l'utilisateur actuellement connecté.
PWD /home/utilisateur/Desktop Le répertoire de travail courant de l'interpréteur de commande.
SHELL /bin/bash L'interpréteur de commande préféré de l'utilisateur tel qu'il est défini dans le fichier « /etc/passwd »
 

 

Les fonctions

On peut créer une fonction voire plusieurs pour factoriser des parties du code et éviter la redondance.

function nom() { du code }

et on va éclaircir le code avec des sauts de ligne

#!/bin/bash

function EcrireBonjourMonde() {

maVariable="Bonjour Monde"

echo "$maVariable"

}

EcrireBonjourMonde # ce n'est que maintenant que le code est exécuté

exit 0

Bien sûr tout cela ne sert à rien à part comprendre rapidement ces concepts.

et on pourrait le faire ainsi :

#!/bin/bash

maVariable="Bonjour Monde"

function EcrireLesOptions() {

echo "$@"

}

EcrireLesOptions "$maVariable"

exit 0

et pour aller plus loin sur les variables :

#!/bin/bash

maVariable="Bonjour Monde"

function EcrireLesOptions() {

local maVariable="autre texte"

echo "maVariable passé à la fonction : $@"

echo "maVariable dans la fonction : $maVariable"

}

EcrireLesOptions "$maVariable"

echo "maVariable hors de la fonction : $maVariable"

exit 0

renverra :

maVariable passé à la fonction : Bonjour Monde
maVariable dans la fonction : autre texte
maVariable hors de la fonction : Bonjour Monde

Alors que :

#!/bin/bash

maVariable="Bonjour Monde"

function EcrireLesOptions() {

maVariable="autre texte"

echo "maVariable passé à la fonction : $@"

echo "maVariable dans la fonction : $maVariable"

}

EcrireLesOptions "$maVariable"

echo "maVariable hors de la fonction : $maVariable"

exit 0

renverra :

maVariable passé à la fonction : Bonjour Monde
maVariable dans la fonction : autre texte
maVariable hors de la fonction : autre texte

Retour des fonctions

On peut récupérer les sorties d'une fonction comme un echo :

NB : "$(uneFonction)" exécute la fonction et renvoie les retours.

#!/bin/bash

function uneFonction() {

    echo "ce que je veux"

}

uneVariable="$(uneFonction)"

echo "$uneVariable"

exit 0

 Pour aller plus loin, les variables peuvent être des ensembles (array) accessible par un index.

 un exemple pour comprendre comment fonctionnent les accès :

#!/bin/bash

# ======================================= #
declare -A uneArray

uneArray[a]="texte 1"
uneArray[b]="texte 2"
uneArray[c]="texte 3"
uneArray[d]="texte 4"
uneArray[e]="texte 5"
uneArray[f]="texte 6"
uneArray[g]="texte 7"
uneArray[h]="texte 8"
uneArray[avec espace]="texte 9"

echo "on recherche 'avec espace' ${uneArray['avec espace']}"
echo "on recherche 'c' ${uneArray['c']}"

# ======================================= #
declare -A uneAutreArray

uneAutreArray[1]="texte 1"
uneAutreArray[2]="texte 2"
uneAutreArray[3]="texte 3"
uneAutreArray[4]="texte 4"
uneAutreArray[5]="texte 5"
uneAutreArray[6]="texte 6"
uneAutreArray[7]="texte 7"
uneAutreArray[8]="texte 8"
uneAutreArray[9]="texte 9"

echo "on recherche 7 ${uneAutreArray[7]}"
# ======================================= #
exit 0

renverra :

on recherche 'avec espace' texte 9
on recherche 'c' texte 3
on recherche 7 texte 7

Suite =>