Одиночная кавычка и обратная косая черта


10
~$ echo $'\'test'
'test

man bash говорит:

Заключение символов в одинарные кавычки сохраняет буквальное значение каждого символа в кавычках. Одиночная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта.

Почему тогда это работает в echo-команде?

Ответы:


16

Одиночные кавычки '...'отличаются от долларовых одинарных кавычек $'...'. Первый не поддерживает обратную косую черту, а второй использует спецификацию ANSI C.


14

chorobaответ абсолютно правильный, вот подробности из man bash:

Слова вида $ 'string' обрабатываются специально. Слово расширяется до
строка с символами, экранированными обратной косой чертой, замененными, как указано в ANSI C
стандарт. Escape-последовательности с обратной косой чертой, если они есть, декодируются следующим образом:
              \ оповещение (звонок)
              \ B Backspace
              \ е
              \ E escape-персонаж
              \ f подача формы
              \ n новая строка
              возврат каретки
              горизонтальная вкладка
              вертикальная вкладка
              \ \ обратная косая черта
              одиночная цитата
              \ "двойная цитата
              \? вопросительный знак
              \ nnn восьмибитный символ, значение которого является восьмеричным
                     nnn (от одной до трех цифр)
              \ xHH восьмибитный символ, значение которого является шестнадцатеричным
                     значение ЧЧ (одна или две шестнадцатеричные цифры)
              \ uHHHH символ Unicode (ISO / IEC 10646), значением которого является
                     шестнадцатеричное значение HHHH (от одной до четырех шестнадцатеричных цифр)
              \ UHHHHHHHH
                     символ Unicode (ISO / IEC 10646), значением которого является
                     шестнадцатеричное значение HHHHHHHH (от одной до восьми шестнадцатеричных цифр)
              \ cx a control-x персонаж

Поэтому!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.