Чи використовується символ «галочка» або «гострий акцент» (ні) для чогось у оболонці Linux?


11

Ми знаємо, що символ підключення використовується для заміни команд :

chown `id -u` /mydir

Що мене змусило задуматися: чи використовується символ галочки ´для чого-небудь в оболонці Linux?


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


3
Я НЕ був упевнений в імені, але я думав , що ´називається акут тільки тоді , коли використовується в якості діакритичних (і, навпаки, `називається апостроф ). Якщо він використовується окремо, оскільки останній є зворотним відбитком , першим здавалося, що першим його можна назвати галочкою або тиком вперед (будь ласка, не давайте називати це зворотним зворотом ). Я змінив назву питання, щоб включити вашу замітку.
dr_

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

1
@ dr01 Можливо, варто вписати в заголовок щось на зразок "(не`) ", щоб допомогти з плутаниною.
Людина капітана

Схожий на вигляд персонаж апострофа ( ', ASCII 39, U + 0027) має значення у багатьох оболонках Unix (наприклад, оболонці Борна /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
"Імовірно, 'не вважався достатньо поширеним для того, щоб зробити розріз (незважаючи на широке використання в неамериканських мовах)". Touché.
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).
kasperd

2
@kasperd, так, я не мав на увазі, що мова змінила значення. Вибір fr_FRбув довільним, просто буває, що в моїй системі є такі локалі. Звичайно, те саме було б із en_GB.UTF-8...
Стефан Шазелас

12

Хоча комітет ASCII вважав "як діакритику" і "як апостроф", традицією Unix було трактувати їх як ліві та праві одиничні цитати (символи, які зараз є в Unicode як U + 2018 та U + 2019). Це найбільш очевидно з конвенції TeX про те, що ви пишете `` цитований текст '' у джерело розмітки, і ви отримуєте "текст з цитатами" у форматованому документі. Це також можна побачити у старих одношарових шрифтах, таких як шрифти растрових зображень, що постачаються з X11R5 та X11R6, де двом символам надано дзеркальне зображення.

Таким чином, `і 'вважалися один одного зворотними, і' не вважалося, що вони відсутні.


3
Ага так, я пам’ятаю той синтаксис LaTeX!
dr_

1
@ dr01: Що раптом має сенс, коли ви виявляєте деякі старі шрифти, вони є дзеркалами один одного.
Джошуа

2
'ANSI було чітко визначено в ASCII як APOSTROPHE, RIGHT SINGLE QUOTATION MARK, ACUTE_ACCENT від ANSI, це не лише річ Unix. Там немає іншого одинарної правої лапки в ASCII.
Стефан Шазелас

2
@ Джошуа: Зміна зазначених шрифтів була предметом серйозних суперечок / люфтів, коли це сталося (можливо, наприкінці 90-х чи незабаром після 2000 року). Це були не лише шрифти xterm, а всі стандартні растрові шрифти X11, включаючи растрові карти Times / Helvetica / тощо. використовується в браузерах та інших програмах з пропорційно розташованими шрифтами.
R .. GitHub СТОП ДОПОМОГАЙТЕ

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