GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unterschied zwischen ' und ' in der Befehlszeile (bash)??

Auf diese Frage gibt es hier bereits eine Antwort :Was ist der Unterschied zwischen den Anführungszeichen „…“, „…“, $“…“ und „$“…“ in der Shell?

(1 Antwort)
Vor 2 Jahren geschlossen .

Früher habe ich '' verwendet und "" (einfache und doppelte Anführungszeichen) austauschbar auf der Befehlszeile, aber ich habe kürzlich bemerkt, dass '$HOME/some/dir' nicht expandiert, während "$HOME/some/dir" ist. Ich habe ein bisschen herumgesucht und diesen "" gefunden erlaubt einige Schutz von Sonderzeichen, während '' ermöglicht vollen Schutz. Welche anderen Zeichen werden also durch '' geschützt? und nicht "" ?

EDIT:Was sind praktisch Situationen, in denen diese Unterschiede signifikant sein könnten?

Akzeptierte Antwort:

Werfen Sie einen Blick auf die Bash-Manpage. Es gibt einen ganzen Abschnitt über das Zitieren. Da dies unter der GFDL lizenziert ist, die nicht mit der hier verwendeten CC-BY-SA-Lizenz kompatibel ist, werde ich nicht alles zitieren, aber wirklich zu lesen, ist die definitivste Antwort.

Zusammenfassend lässt sich sagen, dass einfache Anführungszeichen jede Interpretation stoppen – die Zeichenfolge wird wörtlich wiedergegeben. Doppelte Anführungszeichen verlassen $ (Dollarzeichen), ` (Backquote) als Sonderzeichen und (Backslash) als Sonderzeichen, wenn bestimmte andere Zeichen folgen. Und ! wird speziell behandelt, wenn die Verlaufserweiterungsfunktion aktiviert ist (was standardmäßig der Fall ist).

In der Praxis ist das $ ist die große Sache, da man oft die verschiedenen Erweiterungen haben möchte, die es ermöglicht (Variablen und mehr), während es immer noch verhindert, dass die Shell den größten Teil der Befehlszeile durcheinander bringt.


Linux
  1. Was ist der Unterschied zwischen InnoDB und MyISAM?

  2. Unterschied zwischen Piping und Befehlserweiterung?

  3. Was ist der Unterschied zwischen #!/usr/bin/env bash und #!/usr/bin/bash?

  4. Unterschied zwischen '{}' und {} im Find-Befehl?

  5. Was ist der Unterschied zwischen ls und l?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Cat und Touch Command?

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen Kill- und Killall-Befehlen?