Escapezeichen in Bash

Fumbani Banda 30 Januar 2023
  1. Escape-Zeichen
  2. Mit doppelten Anführungszeichen
  3. Mehr Escape-Zeichen in Bash
Escapezeichen in Bash

Dieses Tutorial erklärt, was Escape-Zeichen sind, und bietet eine informative Liste von Escape-Zeichen.

Escape-Zeichen

Escape-Zeichen sind Zeichen, die eine andere Interpretation als sie selbst darstellen. Es gibt keine endgültige Liste mit allen Zeichen, die in der Bash maskiert werden müssen. Eine empfohlene allgemeine Regel lautet jedoch: Falls Sie Zweifel haben, vermeiden Sie es.

Mit doppelten Anführungszeichen

Die Verwendung von doppelten Anführungszeichen um Escape-Zeichen behält ihre wörtliche Bedeutung bei.

Lassen Sie uns das Sternchen * mit dem echo-Befehl verwenden, um dies zu demonstrieren. Wenn Sie auf dem Terminal echo * eingeben, werden alle Dateien im aktuellen Verzeichnis angezeigt. Das Einschließen von * in doppelte Anführungszeichen zeigt das Sternchen jedoch nur auf der Standardausgabe an.

echo "*"

Es zeigt die folgende Ausgabe an.

*

Mehr Escape-Zeichen in Bash

Es gibt keine endgültige Liste mit allen Zeichen, die in der Bash maskiert werden müssen. Sie können es herausfinden, indem Sie einige dieser Charaktere testen. Das folgende Bash-Skript gibt Aufschluss darüber, welche Zeichen maskiert werden müssen, sowie die Darstellung der maskierten Zeichen.

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

Das Skript zeigt die folgende Ausgabe an. Ich habe nur die ersten 11 Zeichen angezeigt. Das erste Feld hat den Hex-Wert von Byte, und die zweite Datei hat Escape, wenn ein Zeichen maskiert werden muss, oder -, wenn nicht. Der letzte Teil zeigt die Darstellung des Zeichens beim Entkommen.

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