Variables de base en Bash

Introduction à la programmation Bash

Alex Scriven

Data Scientist

Assigner des variables

Comme dans d'autres langages, on assigne des variables avec le signe égal.

var1="Moon"

Puis on les référence avec la notation $.

echo $var1
Moon
Introduction à la programmation Bash

Assigner des chaînes de caractères

Nommez votre variable comme vous voulez (de façon sensée) :

firstname='Cynthia'
lastname='Liu'

echo "Hi there" $firstname $lastname
Hi there Cynthia Liu

Les deux variables ont été affichées – bien !

Introduction à la programmation Bash

Oublier la notation $

Si vous oubliez la notation $, ce n'est pas une variable !

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Introduction à la programmation Bash

Ne pas (bien) assigner des variables

Bash pardonne mal les espaces lors de la création de variables. Évitez d'en ajouter !

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Introduction à la programmation Bash

Simples, doubles, apostrophes inverses

En Bash, les guillemets ont des effets différents, autant pour créer des variables que pour les afficher.

  • Guillemets simples ('texte') : le shell interprète littéralement ce qu'il y a entre les quotes
  • Guillemets doubles ("texte") : interprétation littérale sauf pour $ et les apostrophes inverses

La dernière option crée un « shell dans le shell », illustré ci‑dessous. Utile pour appeler des programmes en ligne de commande. Cela se fait avec des apostrophes inverses.

  • Apostrophes inverses (`texte`) : le shell exécute la commande et capture la sortie STDOUT dans une variable
Introduction à la programmation Bash

Différentes assignations de variables

Voyons l'effet des différents types d'assignation

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Introduction à la programmation Bash

Le programme date

Le programme date est pratique pour démontrer les apostrophes inverses

Sortie normale de ce programme :

date
Mon  2 Dec 2019 14:07:10 AEDT
Introduction à la programmation Bash

Un shell dans le shell

Utilisons maintenant le shell dans le shell :

rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.

Le programme date a été appelé, sa sortie capturée et intégrée directement avec l'appel à echo.

Nous avons utilisé un shell dans le shell !

Introduction à la programmation Bash

Parenthèses vs apostrophes inverses

Il existe un équivalent à la notation avec apostrophes inverses :

rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.

Les deux méthodes fonctionnent pareil, mais les apostrophes inverses sont plus anciennes. Les parenthèses sont davantage utilisées aujourd'hui. (Voir http://mywiki.wooledge.org/BashFAQ/082)

Introduction à la programmation Bash

Passons à la pratique !

Introduction à la programmation Bash

Preparing Video For Download...