MagPI 10 Page 17

De Le French MagPi
Aller à : Navigation, rechercher

Ensuite, rendez le script exécutable et lancez-le. La commande echo affiche une chaîne à l'écran en utilisant la sortie standard. Les lignes commençant par "#" sont des commentaires. Les commentaires peuvent être ajoutés sur des lignes distinctes ou en fin de ligne.

Sommaire

L'opérateur tube

Une suite de commandes peuvent être chaînées en utilisant l'opérateur tube "|". Un tube a pour effet de passer la sortie standard d'une commande à l'entrée standard de la suivante. C'est particulièrement utile lorsqu'on manipule des chaînes :

# Affiche "Bonjour Jean" et remplace Jean par Fred.
echo "Bonjour Jean" | sed 's/Jean/Fred/g'

# Remplace Bonjour par Au revoir.
echo "Bonjour Jean" | sed 's/Jean/Fred/g' | sed 's/Bonjour/Au revoir/g'

Dans cet exemple, la commande sed est utilisée pour remplacer une partie de la chaîne. La commande sed (éditeur en flux) est un programme à part entière et a sa propre page de manuel.

Redirection

La sortie standard d'un programme peut être redirigée vers un fichier ou un périphérique :

# Envoie une chaîne dans un fichier
echo "Ceci est un fichier" > fichier.txt

# Affiche le contenu du fichier à l'écran
cat fichier.txt

L'opérateur ">" vide le fichier puis ajoute la sortie standard au fichier. Pour ajouter à un fichier sans le vider, on doit utiliser l'opérateur ">>".

Si une commande produit beaucoup de sortie inutile, on peut l'envoyer à /dev/null :

# Lancer une commande en se débarrassant de sa sortie
rm /tmp &> /dev/null # Cette commande va échouer

Un fichier peut être utilisé comme entrée standard d'une commande en utilisant "<". Ce sera vu plus tard avec les boucles.

Variables

Une variable est définie en lui assignant une valeur :

monNom="JeanDupont"

Bash est très pointilleux en ce qui concerne les espaces. Pour que la déclaration soit correctement interprétée, il ne faut pas d'espaces entre le nom de la variable et le signe égal ou entre le signe égal et la valeur.

Lorsqu'une variable a été définie, elle est utilisée en accolant un signe dollar devant son nom :

echo $monNom

Les variables définies dans un interpréteur de commandes ne sont pas disponibles dans ses fils à moins d'être exportées :

export monNom="JeanDupont"

Les variables peuvent être exportées lors de leur déclaration ou après coup.

Conditions if-else

Les conditions logiques sont encadrées par des crochets "[[]]". le statut d'une variable peut être testé dans une condition logique :

#!/bin/bash
if [[ -z $monNom ]]; then
  echo "monNom n'est pas définie"
else
  echo "monNom est définie comme \"$monNom\""
fi

Dans ce cas, la première condition est vérifiée si la variable n'est pas définie. Au moins un espace doit séparer les parties de la condition logique. Enregistrez ce script, changez ses permissions et exécutez-le. Essayez ensuite :

export monNom=$HOSTNAME

Puis relancez le script. Tapez ensuite :

unset monNom

Et relancez le script. La commande unset efface la variable monNom. Bash fournit aussi la clause else-if :

if [[ $var == 1 ]]; then
  cat /proc/cpu # Vérifier le type de CPU
elif [[ $var == 2 ]]; then
  cat /proc/meminfo # Information sur la mémoire
else
  date -I # La date courante
fi
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils