Acabei de ver isso em um script init:
echo $"Stopping Apache"
Para que serve esse cifrão?
Minha pesquisa até agora:
Encontrei isso no manual do bash:
citar
Se definido,
$'string'
e a$"string"
citação é realizada em${parameter}
expansões entre aspas duplas. Essa opção é ativada por padrão.
... mas não estou encontrando nenhuma diferença entre cadeias com e sem o $
prefixo:
$ 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
fonte
$"..."
, conforme a pergunta.Você está interpretando mal o manual. Você verá um efeito apenas quando uma sequência de cotações $ estiver dentro de uma
${parameter}
expansão.Fonte e leituras adicionais: https://lists.gnu.org/archive/html/bug-bash/2005-10/msg00017.html
fonte
$"…"
é algo diferente.${}
expansão para usar a citação ANSI. Verifique você mesmo:echo $'ab\ncd'
extquote
incorretamente, em vez do que a pergunta estava fazendo."${...}"
é diferente de$"..."