Используется ли символ «галочка» или «острый акцент» ´ (не `) для чего-либо в оболочке Linux?


11

Мы знаем, что символ обратной галочки используется для подстановки команд :

chown `id -u` /mydir

Что заставило меня задуматься: используется ли символ галочки ´для чего-либо в оболочке Linux?


Примечание: кстати, подстановка команд также может быть написана более наглядно, как
chown $(id -u) /mydir


3
Я не был уверен в названии, но я думал, что ´это называется острым акцентом, только когда используется как диакритический знак (и, наоборот, `называется серьезным акцентом ). При использовании в одиночку, так как последний является кавычка , это казалось естественным для первого называться тик или вперед тик (пожалуйста , давайте не будем называть это обратная кавычка ). Я изменил заглавный вопрос, чтобы включить вашу заметку.
Dr_

1
справедливо. Я удалил комментарий.
Стефан Шазелас

1
@ dr01 Возможно, стоит добавить в заголовок что-то вроде "(не`) ", чтобы помочь с путаницей.
Капитан Мэн

Подобный символ апостроф ( ', ASCII 39, U + 0027) имеет значение во многих оболочках Unix (например, оболочка Bourne /bin/sh) и оболочках Linux (например /bin/bash). Это предотвращает расщепление слов и все расширения. Так что ls '$foo [bar]'возвращает ошибку, если $foo [bar]в текущем каталоге нет файла с именем . Это эквивалентно ls "\$foo [bar]"и ls \$foo\ \[bar\].
оч

1
В Unicode есть много похожих символов, см. Cl.cam.ac.uk/~mgk25/ucs/quotes.html для неполного списка, и см. En.wikipedia.org/wiki/Prime_(symbol) для некоторых других символов. , Из всех них только символы ASCII ( ', ", `) имеют особое значение в Unix оболочек.
оч

Ответы:


28

Наборы символов, исторически используемые в Unix, включая ASCII , не имеют тикового символа, поэтому он не использовался. Насколько мне известно, с тех пор, как он стал доступен, обычного использования этого персонажа не было; и не будет, поскольку он не включен в переносимый набор символов POSIX .

`, очевидно, изначально был включен в ASCII (наряду с ^ и ~), чтобы служить диакритическим знаком. Когда был определен ASCII, апостроф обычно представлял собой глиф в стиле '("простой", используемый для минут или футов), а не прямой апостроф ", и также использовался в качестве диакритического острого акцента.

Исторически в документации оболочки Unix `упоминалось как серьезный акцент , а не обратный удар . Отсутствие галочки вперед не подняло бы брови, тем более что «использовался в качестве дополнительного символа (см. roffСинтаксис).


5
«Предположительно ´ не считалось достаточно распространенным, чтобы сделать сокращение (несмотря на его широкое использование в неамериканских языках)». Туш.
Dr_

6
Символы за пределами переносимого набора символов POSIX (подмножество ASCII) не будут использоваться в синтаксисе оболочек, поскольку их кодировка обычно различается в зависимости от локали (и может отсутствовать в некоторых, включая локаль C). Например, в системе GNU ´это 0xB4 в локали fr_FR.iso88591, 0xC2 0xB4 в fr_FR.UTF-8 и не существует в локали C.
Стефан Шазелас

@ StéphaneChazelas То, что вы говорите, остается верным, даже если fr_FRего заменят любым другим языком. Кодировка символа является свойством кодировки (ISO-8859-1 или UTF-8).
Касперд

2
@kasperd, да, я не хотел сказать, что язык имеет значение. Выбор fr_FRбыл произвольным, просто у меня в системе есть такие локали. Конечно, было бы то же самое с en_GB.UTF-8...
Стефан Шазелас

12

Хотя комитет ASCII считал «диакритиком» и апострофом, традиция Unix заключалась в том, чтобы рассматривать их как одинарные кавычки слева и справа (символы, которые теперь в Юникоде обозначены как U + 2018 и U + 2019). Это наиболее очевидно из соглашения TeX, что вы пишете `` цитируемый текст '' в источнике разметки, и вы получаете “цитируемый текст” в отформатированном документе. Это также можно увидеть в более старых моноширинных шрифтах, таких как растровые шрифты, поставляемые с X11R5 и X11R6, где двум символам были присвоены глифы зеркального отображения.

Как таковые, «и» считались обратными друг другу, и «не считалось отсутствующим.


3
Ах да, я помню тот синтаксис LaTeX!
Dr_

1
@ dr01: Что неожиданно имеет смысл, когда вы обнаруживаете, что у некоторых старых шрифтов они являются зеркалами друг друга.
Иисус Навин

2
'был явно определен в ASCII как APOSTROPHE, RIGHT SINGLE QUOTATION MARK, ACUTE_ACCENT от ANSI, это не только Unix. В ASCII нет других правильных одинарных кавычек.
Стефан Шазелас

2
@Joshua: смена упомянутых шрифтов была предметом серьезного спора / обратной реакции, когда это произошло (возможно, в конце 90-х или вскоре после 2000 года). Это были не только xterm шрифты, но и все стандартные растровые шрифты X11, включая растровое изображение Times / Helvetica / и т. Д. используется в браузерах и других приложениях с пропорционально расположенными шрифтами.
R .. GitHub ОСТАНОВИТЬ ЛЬДА

1
Недостаточно негативной реакции, чтобы остановить это, к сожалению! Сторонники Юникода бегают вокруг, рассказывая всем, что апостроф ASCII - это вертикальная линия, что находится в прямом противоречии с примером глифа в действующем стандарте ASCII ... и теперь почти каждый шрифт имеет такую ​​глупость в позиции 0x27 вместо прилично выглядящего апострофа
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.