Ich habe das gerade in einem Init-Skript gesehen:
echo $"Stopping Apache"
Wofür ist das Dollarzeichen?
Meine bisherigen Forschungen:
Ich fand das im Bash-Handbuch:
extquote
Wenn gesetzt,
$'string'
und$"string"
unter Angabe innerhalb ausgeführt${parameter}
in Anführungszeichen Erweiterungen. Diese Option ist standardmäßig aktiviert.
... aber ich finde keinen Unterschied zwischen Strings mit und ohne $
Präfix:
$ echo "I am in $PWD"
I am in /var/shared/home/southworth/qed
$ echo $"I am in $PWD"
I am in /var/shared/home/southworth/qed
$ echo $"I am in ${PWD}"
I am in /var/shared/home/southworth/qed
$ echo "I am in ${PWD}"
I am in /var/shared/home/southworth/qed
$ echo 'I am in ${PWD}'
I am in ${PWD}
$ echo $'I am in ${PWD}'
I am in ${PWD}
$ echo $'I am in $PWD'
I am in $PWD
quelle
$"..."
gemäß der Frage.Sie interpretieren das Handbuch falsch. Sie werden nur dann einen Effekt sehen, wenn sich eine Zeichenfolge mit Anführungszeichen in einer
${parameter}
Erweiterung befindet.Quelle und weiterführende Literatur: https://lists.gnu.org/archive/html/bug-bash/2005-10/msg00017.html
quelle
$"…"
ist etwas anderes.${}
Erweiterung zu verwenden, um ANSI-Anführungszeichen zu verwenden.echo $'ab\ncd'
extquote
falsch zu erklären, anstatt was die Frage stellte."${...}"
ist anders als$"..."