tl; dr : Um ein Sonderzeichen \
in " "
Anführungszeichen zu setzen, muss es entweder mit einem Backslash versehen oder in doppelte oder einfache Anführungszeichen eingeschlossen werden ' '
. Tab ↹Die Vervollständigung sorgt für eine korrekte Preisangabe.
Was Sie verlangen, heißt Zitieren :
Das Zitieren wird verwendet, um die spezielle Bedeutung bestimmter Zeichen oder Wörter in der Shell zu entfernen. (…) Es gibt drei Anführungszeichen : das Escape-Zeichen , einfache Anführungszeichen und doppelte Anführungszeichen .
[Zitate entnommen aus man bash
]
Zitieren mit dem Escape-Charakter \
Ein Backslash ( \
) ohne Anführungszeichen ist das Escape-Zeichen. Es behält den Literalwert des nächsten folgenden Zeichens bei, mit Ausnahme von <newline>
.
Um also ein Verzeichnis oder eine Datei mit einem Sonderzeichen einzugeben, verlassen Sie letzteres mit \
zB:
cd space\ dir # change into directory called “space dir”
cat space\ file # print the content of file “space file”
echo content > \\ # print “content” into file “\”
cat \( # print the content of file “(”
ls -l \? # list file “?”
bash
Durch die programmierbare Vervollständigung (auch als Tab ↹Vervollständigung bezeichnet) werden Sonderzeichen automatisch mit dem Escape-Zeichen ausgeblendet \
.
Zitieren mit doppelten Anführungszeichen " "
Zeichen in doppelten Anführungszeichen bewahrt den wörtlichen Wert aller Zeichen innerhalb der Anführungszeichen, mit Ausnahme von umschließenden $
, `
, \
, und, wenn die Geschichte Erweiterung aktiviert ist, !
.
Wenn Sie also ein Verzeichnis oder eine Datei mit einem Sonderzeichen eingeben möchten, müssen Sie mindestens das letztere oder einen größeren Teil Ihres Dateinamens oder Pfads in doppelte Anführungszeichen setzen, z.
cd space" "dir # change into directory called “space dir”
cd spac"e di"r # equally
cd "space dir" # equally
cat "space file" # print the content of file “space file”
cat "(" # print the content of file “(”
ls -l "?" # list file “?”
Wie $
, `
und !
hält ihre besondere Bedeutung in doppelten Anführungszeichen, Parameter Expansion , Befehl Substitution , Arithmetic Erweiterung und Expansion Geschichte auf Strings in doppelten Anführungszeichen ausgeführt.
Zitieren mit einfachen Anführungszeichen ' '
Das Einschließen von Zeichen in einfache Anführungszeichen behält den Literalwert jedes Zeichens in den Anführungszeichen bei. Ein einfaches Anführungszeichen darf nicht zwischen einfachen Anführungszeichen stehen, auch wenn ein Backslash vorangestellt ist.
Wenn Sie also ein Verzeichnis oder eine Datei mit einem Sonderzeichen eingeben möchten, müssen Sie mindestens das letztere oder einen größeren Teil Ihres Dateinamens oder Pfads in doppelte Anführungszeichen setzen, z.
cd space' 'dir # change into directory called “space dir”
cd spac'e di'r # equal
cd 'space dir' # equal
cat 'space file' # print the content of file “space file”
cat '(' # print the content of file “(”
ls -l '?' # list file “?”
echo content > '\' # print “content” into file “\”
Weitere man bash
Informationen zum Zitieren finden Sie in / QUOTING , auf wiki.bash-hackers.org und auf tldp.org .