Acabo de ver esto en un guión de inicio:
echo $"Stopping Apache"
¿Para qué es ese signo de dólar?
Mi investigación hasta ahora:
Encontré esto en el manual de bash:
extquote
Si se establece,
$'string'
y las comillas$"string"
se realizan dentro de las${parameter}
expansiones entre comillas dobles. Esta opción está activada de forma predeterminada.
... pero no encuentro ninguna diferencia entre cadenas con y sin el $
prefijo:
$ 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
fuente
$"..."
, según la pregunta.Estás malinterpretando el manual. Solo verá un efecto cuando una cadena entre comillas $ esté dentro de una
${parameter}
expansión.Fuente y lectura posterior: https://lists.gnu.org/archive/html/bug-bash/2005-10/msg00017.html
fuente
$"…"
es algo diferente.${}
expansión para hacer uso de las citas ANSI. Compruébelo usted mismo:echo $'ab\ncd'
extquote
incorrectamente en lugar de lo que estaba haciendo la pregunta."${...}"
es diferente a$"..."