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
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