Ich kann mein Leben lang nicht herausfinden, wie ich dem !
-Zeichen in Bash entkommen kann. Zum Beispiel möchte ich Folgendes drucken:
Text text text!
Ich habe es versucht:
%Vor%aber das druckt das stattdessen:
Text text text\!
(mit einem zusätzlichen Backslash).
Wie kann ich das tun?
Wie andere Antworten gezeigt haben, besteht die Antwort darin, einfache Anführungszeichen zu verwenden (da sie die Verlaufserweiterung nicht auswerten).
Wie gibt Cyrus 'Antwort an, dass Sie doppelte Anführungszeichen für den Haupttext und einfache Anführungszeichen nur für das Ausrufezeichen verwenden können, wenn dies der Fall ist was du brauchst. Denken Sie daran, dass es der Shell egal ist, wie die Quotierung funktioniert. Sie sieht die "Wörter", nachdem die Zitate entfernt wurden.
Dass alles in nicht-interaktiven Kontexten gesagt wird, ist die History-Erweiterung standardmäßig deaktiviert und daher ist das Escapen von / etc. ist nicht notwendig.
%Vor% Theoretisch sollten Sie in der Lage sein, die Verlaufserweiterung in nicht-interaktiven Kontexten manuell zu aktivieren und auf dieses Problem zu stoßen, aber meine schnellen Tests mit set -o hsitory -o histexpand
in diesem Skript, bevor der echo-Befehl keine Probleme mit der Verlaufserweiterung ausgelöst hat.