17. Programmation en SHELL BASH dans une console

17.1. Exercices

Les lignes ci-dessous comportent des erreurs :

  1. 
$ if [ a == a]; then echo true; fi
      
    Le problème ici se situe au niveau du test. Il manque un espace entre les caractères 'a' et ']'. La bonne syntaxe est donc :
    
$ if [ a == a ]; then echo true; fi
      

  2. 
$ if [ a == a ]; echo true; fi
      
    Ici, il manque le mot-clef then. La bonne syntaxe est la même que précédemment :
    
$ if [ a == a ]; then echo true; fi
      

  3. 
$ a=3; echo '$a' # On souhaite afficher la valeur de a
      
    Pour afficher le contenu de la variable a, il est inutile de l'entourer de simples guillemets. La bonne syntaxe est :
    
$ a=3; echo $a # On souhaite afficher la valeur de a
      

  4. 
$ if [ a != b ]; then echo true; fi
    
    A priori, le code est correct. Néanmoins, il faut faire attention à ne pas confondre [ a != b ] et [ $a != $b ].

  5. 
$ a=3; (echo $a); a=3; (a=2; echo $a);
    
    Dans ce script, la première valeur de a vaut 3 et la deuxième vaut 2. Les parenthèses indiquent qu'on a affaire à un sous-shell. Autrement dit, toute modification d'une variable ne sera prise en compte que localement. Il s'agira en fait d'une copie locale qui sera détruite au terme du script sous-shell.