I. Substitutions. 1. Si name est le nom d’une variable, alors $name sera substitu´e par value x=pop Alors echo x ; affiche : pop , et echo $x ; affiche : le contenu de pop x=5+7 ; Alors echo $x ; affiche : l'adition de 5+7 soit 12 PWD est une variable du shell qui retient le chemin complet vers le r´epertoire de travail courant : PWD: The current working directory as set by the cd command. On veut afficher la chaˆıne de caract`eres : Working directory: /export/home/students/quidam/SCR/ o`u ce qui vient apr`es les : doit se substituer, `a chaque fois, par le chemin complet du r´epertoire courant. Une ligne de commande qui le fait : echo 2. On me remet un ficher list contenant une liste de noms d’´el´ements dont je dois v´erifier le type du contenu. Je veux avoir en un seul affichage le type du contenu de chacun des ´el´ements dont le nom est enregistr´e dans le fichier list : Une ligne de commande qui le fait : echo $(ls list) 3. x=5+7 (cf. 1) Alors echo $x ; affiche : le calcul de 5+7 qui est 12 x=$((5+7)) Alors echo $x ; affiche : aussi le calcul de 5+7 qui est 12 car le dollar dans l'instanciation fait que x=(5+7) car le dollar a enlevé les parenthèses y=5 ; z=-7 x=y*z ; alors echo $x ; affiche :le produit de y et z qui est -35 x=$((y*z)) ; alors echo $x ; affiche : pareil que la question dernière avec le meme raisonnement que la question précedent celle d'avant II. Expressions conditionnelles. Put all together : 1. [[ myrmidon < myriade ]] ; echo $? ; affiche : 1 car elle est vraie dans l'ordre alphabetique mymidon < myriade 2. [[ 4567 < 5 ]] ; echo $? ; affiche : 0 car 4567>5 3. [[ patate == potato ]] ; echo $? ; affiche : 0 car patate n'est pas le meme mot que potato 4. [[ patate -eq potato ]] ; echo $? ; affiche 0 car patate n'est pas égal à potato II. Commandes compos´ees. 1. if list; then list; [ elif list; then list; ] ... [ else list; ] fi (a) if [[ myrmidon < myriade ]] > then echo "myrmidon sorts before myriade" > else echo "myrmidon does not sort before myriade" > fi affiche : myrmidon sorts before myriade car myrmidon est inférieur a myriade en terme alfabetiques. (b) On lance deux fois de suite : if [[ -d VROOM ]] ; then cd VROOM ; else mkdir VROOM ; fi What will happen ? La premiere fois mkdir VROOM car VROOM n'est pas un directory donc on ne lance pas la premiere condition mais alors à la deuxieme fois cd VROOM sera lancé 2. for name in word(s) ; do list ; done The list of word(s) following in is expanded, generating a list of items. The variable name is set to each element of this list in turn, and the do list is executed each time. (a) for i in "1 2 3" ; do echo $i ; done ; s’ex´ecute . . . fois et affiche :