Я только что видел это в сценарии инициализации:
echo $"Stopping Apache"
Для чего этот знак доллара?
Мои исследования до сих пор:
Я нашел это в руководстве по bash:
extquote
Если установлено,
$'string'
и$"string"
цитирование выполняется внутри${parameter}
расширений, заключенных в двойные кавычки. Эта опция включена по умолчанию.
... но я не вижу никакой разницы между строками с $
префиксом и без него :
$ 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
источник
$"..."
, в соответствии с вопросом.Вы неверно истолковали руководство. Вы увидите эффект только когда натянуть $ -quoted находится внутри в
${parameter}
экспансии.Источник и дальнейшее чтение: https://lists.gnu.org/archive/html/bug-bash/2005-10/msg00017.html
источник
$"…"
это что-то другое.${}
расширение для использования цитирования ANSI. Проверьте сами:echo $'ab\ncd'
extquote
неправильно, вместо того, что задавал вопрос."${...}"
отличается от$"..."