Introduction au scripting Bash
Alex Scriven
Data Scientist
Comme dans d'autres langages, vous pouvez affecter des variables avec le signe égal.
var1="Moon"
Puis les référencer avec la notation $.
echo $var1
Moon
Nommez votre variable comme vous voulez (restez cohérent·e) :
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
Les deux variables ont été affichées — parfait !
Si vous oubliez la notation $, ce n'est pas une variable !
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash tolère 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
En Bash, le type de guillemets change le comportement, autant pour créer des variables que pour les afficher.
'sometext') = le Shell interprète littéralement ce qui est entre les quotes"sometext") = interprétation littérale sauf pour $ et les backticks Le dernier crée un « shell dans le shell », décrit ci-dessous. Utile pour appeler des programmes en ligne de commande. Cela se fait avec des backticks.
Voyons l'effet des différents types d'affectation de variable
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Le programme date sera utile pour démontrer les backticks
Sortie normale de ce programme :
date
Mon 2 Dec 2019 14:07:10 AEDT
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 en ligne avec l'appel echo.
Nous avons utilisé un shell dans le shell !
Il existe un équivalent aux backticks :
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 fonctionnent pareil, mais les backticks sont plus anciens. Les parenthèses sont préférées dans les usages modernes. (Voir http://mywiki.wooledge.org/BashFAQ/082)
Introduction au scripting Bash