Caractères d'échappement dans Bash

Fumbani Banda 30 janvier 2023
  1. Caractères d’échappement
  2. Utiliser des guillemets doubles
  3. Plus de caractères d’échappement dans Bash
Caractères d'échappement dans Bash

Ce didacticiel explique ce que sont les caractères d’échappement et fournit une liste informative de caractères d’échappement.

Caractères d’échappement

Les caractères d’échappement sont des caractères qui représentent une interprétation alternative autre qu’eux-mêmes. Il n’y a pas de liste définitive avec tous les caractères qui doivent être échappés dans bash. Cependant, une règle générale recommandée dit en cas de doute, échappez-y.

Utiliser des guillemets doubles

L’utilisation de guillemets autour des caractères d’échappement préserve leur sens littéral.

Utilisons l’astérisque * avec la commande echo pour le démontrer. Sur le terminal, en tapant, echo * affiche tous les fichiers du répertoire courant. Cependant, le fait d’encadrer * entre guillemets affiche l’astérisque uniquement sur la sortie standard.

echo "*"

Il affiche la sortie suivante.

*

Plus de caractères d’échappement dans Bash

Il n’y a pas de liste définitive avec tous les caractères qui doivent être échappés dans bash. Vous pouvez le découvrir en testant certains de ces personnages. Le script bash suivant donne un aperçu des caractères qui doivent être échappés et de la représentation des caractères échappés.

for x in {0..127} ;do
    printf -v char \\%o $x
    printf -v char $char
    printf -v res "%q" "$char"
    esc=Escape
    [ "$char" = "$res" ] && esc=-
    printf "%02X %s %-7s\n" $x $esc "$res"
done | sort

Le script affiche la sortie ci-dessous. Je n’ai affiché que les 11 premiers caractères. Le premier champ a la valeur hexadécimale de byte, et le deuxième fichier a Escape si un caractère doit être échappé ou - sinon. La dernière partie montre la représentation du caractère lors de sa fuite.

00 Escape ''
01 Escape $'\001'
02 Escape $'\002'
03 Escape $'\003'
04 Escape $'\004'
05 Escape $'\005'
06 Escape $'\006'
07 Escape $'\a'
08 Escape $'\b'
09 Escape $'\t'
0A Escape $'\n'
0B Escape $'\v'
0C Escape $'\f'
0D Escape $'\r'
0E Escape $'\016'
0F Escape $'\017'
10 Escape $'\020'
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub