37.2. Bash, version 3

Le 27 juillet 2004, Chet Ramey a sorti la version 3 de Bash. Cette mise à jour a corrigé un bon nombre de bogues et a ajouté quelques nouvelles fonctionnalités.

Voici quelques-unes des nouvelles fonctionnalités les plus importantes :

[Attention]

Attention

La mise à jour à la version 3 de Bash casse quelques scripts qui fonctionnaient avec les anciennes versions. Testez les scripts critiques pour vous assurer qu'ils fonctionnent toujours !

Quelques scripts du Guide ABS ont dû être corrigés (voir l'Exemple 9.4, « Lecture avec délai », par exemple).

37.2.1. Bash, version 3.1

La version 3.1 de Bash introduit un certain nombre de corrections et quelques modifications mineures.

  • L'utilisation de l'opérateur += est maintenant autorisé à des endroits où seul l'opérateur d'affectation = était reconnu.

    a=1
    echo $a        # 1
    
    a+=5           # Ne fonctionnera pas avec les versions Bash précédant la 3.1.
    echo $a        # 15
    
    a+=Hello
    echo $a        # 15Hello
    

    Ici, += fonctionne comme l'opérateur de concaténation de chaîne. Notez que ce comportement dans ce contexte particulier est différent de celui d'une construction let.

    a=1
    echo $a        # 1
    
    let a+=5       # Arithmétique entière, plutôt que concaténation de chaînes.
    echo $a        # 6
    
    let a+=Hello   # N' "ajoute" rien à a.
    echo $a        # 6
    

    Jeffrey Haemer remarque que cet opérateur de concaténation peut être très utile. Dans l'exemple suivant, nous ajoutons un répertoire au $PATH.

    bash$ echo $PATH
    /usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games
    
    
    bash$ PATH+=:/opt/bin
    
    bash$ echo $PATH
    /usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/opt/bin
          
    

37.2.2. Bash, version 3.2

C'est principalement une mise à jour corrective.