Круговой ( ^
) был приравнен к символу со стрелкой вверх на телепринтерах. Ко времени появления SunOS и т. Д. Эта часть была уже более 10 лет назад. Этот же символ (замена) использовался в математических выражениях, например, ^
для полномочий (где некоторые другие могут использовать **
). Он также использовался в Паскале для указания указателей.
Используется для обозначения управляющих символов, это даты (по крайней мере) до 1980 года Вы можете найти это используется в DEC документации, например (это, конечно , в использовании к середине 1970-х годов , когда я использовал TECO. The Utilities руководство с 1973 года (стр 927) показывает, controlCнапример.
В поисках подходящего источника я нахожу коды связи телетайперов от Джила Смита, в которых сказано, что это достаточно, чтобы разместить это в конце 1960-х годов (демонстрируя также, что происхождение происходит до пре-Unix):
ASCII-63 был в основном идентичен текущей версии ASCII-67. Определения управляющих символов (col-1 выше) варьировались между двумя версиями, как определено ниже. Кроме того, в ASCII-63 верхние 32 позиции (столбец 4) были неопределенными, за исключением трех: RUB (0x7F), ACK (0x7C) и ESC (0x7E). В ASCII-63 имеются противоречивые ссылки на символ ALT-MODE (0x7D). В версии 1967 года RUB стал DEL и остался в той же позиции, но ACK и ESC переместились в область контрольных символов (col-1). В ASCII-67 ^ заменил символ стрелки вверх, а _ заменил стрелку влево
ASCII-63 и ASCII-67 являются распространенными вариантами ASCII, но, по-видимому, также были некоторые переходные версии: в руководстве по модели 33 телетайпа есть ссылки на версию ASCII 1965 года, в которой вместо SUB имелась SS (0x1A), \ for @ (0x40), ~ for \ (0x5C), нечетный символ вместо | (0x7C) и | для ~ (0x7E). Кодовая карта Teletype для машин M33 и M35 указывает на версию ASCII 1966 года, хотя печатные символы, показанные на карте, были идентичны во всех версиях.
Раньше это было хорошо известно из-за проблем обмена файлами между различными кодировками, такими как ASCII и EBCDIC, где все еще существовали принтеры, способные отображать стрелки вверх так долго, после того как в ASCII больше не существовало символа.
vi
(по крайней мере, тот, что в SunOS 3.5) использовал знак вставки / диафрагмы перед буквами, чтобы обозначить ctrl-C, ctrl-V и т. Д.stty
, И делает это тоже. С другой стороны, он^
работал как синоним|
сценариев оболочки в ту эпоху, так что вам всегда нужно было ставить обратную косую черту в вызовахstty
. Хороший вопрос.