Was macht Echo?

Was macht Echo?

Kürzlich ist mir aufgefallen, dass Echos, in denen ich viele "!" einfüge, zu merkwürdigen Ergebnissen führen. Zum Beispiel: echo !!gibt mir:

echo rm -r * 1000
rm -r * 1000

( rm -r *war der letzte Befehl, den ich vor der Eingabe ausgeführt habe). Warum passiert das und gibt es eine Möglichkeit, es zu deaktivieren?

Antwort1

Sie sind auf Folgendes gestoßen shell expansion: Die Shell analysiert Ihren Befehl und ersetzt spezielle Platzhalter durch andere Informationen. Versuchen Sie echo '!!'(einfache Anführungszeichen), um zu verstehen, was Shell-Erweiterungen und Anführungszeichen bewirken können.

Weitere Informationen zur Shell-Erweiterung finden Sie auf der manSeite zu bash. Beachten Sie die Abschnitte zuGeschichte Erweiterung, in dem event designatorsähnliche Dinge besprochen werden !!, undErweiterung, in dem andere Formen der Schalenerweiterung erörtert werden. Der Abschnitt überzitierenerläutert das Verhalten der Anführungszeichenmechanismen von Bash und den Unterschied zwischen der Auswertung von Zeichenfolgen in einfachen und doppelten Anführungszeichen.

verwandte Informationen