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'