bash – ¿Qué significa tener una $ "cadena con prefijo de dólar" en una secuencia de comandos?

Pregunta:

Acabo de ver esto en un script 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 $"string" comillas se realizan dentro de las expansiones ${parameter} encerradas 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

Respuesta:

Aquí están sucediendo dos cosas diferentes, ambas documentadas en el manual de bash

PS

La comilla simple con signo de dólar es una forma especial de cotización:

Cotización ANSI C

Las palabras de la forma $ 'cadena' se tratan especialmente. La palabra se expande a una cadena, con los caracteres de escape con barra invertida reemplazados según lo especificado por el estándar ANSI C.

PS

La comilla doble del signo de dólar es para la localización:

Traducción local

Una cadena entre comillas dobles precedida por un signo de dólar ('$') hará que la cadena se traduzca de acuerdo con la configuración regional actual. Si la configuración regional actual es C o POSIX, se ignora el signo de dólar. Si la cadena se traduce y se reemplaza, el reemplazo se cotiza dos veces.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım