O circunflexo ( ^
) foi igualado ao caractere de seta para cima nas tele-impressoras. No momento em que o SunOS e assim por diante surgiram, essa parte já existia há mais de 10 anos. O mesmo caractere (substituição) foi usado em expressões matemáticas, por exemplo, ^
para poderes (onde alguns outros podem usar **
). Também foi usado em Pascal para indicar indicadores.
Usado para indicar caracteres de controle, data (pelo menos) antes de 1980. Você pode encontrá-lo na documentação do DEC, por exemplo (estava certamente em uso em meados da década de 1970 quando usei o teco. O manual Utilities de 1973 (página 927) mostra um controlCpor exemplo.
Procurando uma fonte adequada, encontro os Códigos de Comunicação de Teletypewriter de Gil Smith, que diz o suficiente para colocar isso no final dos anos 1960 (demonstrando que a origem também é pré-Unix):
O ASCII-63 era praticamente idêntico à versão atual do ASCII-67. As definições dos caracteres de controle (col-1 acima) variaram entre as duas versões, conforme definido abaixo. Além disso, no ASCII-63, as 32 posições superiores (col-4) não foram definidas, exceto por três: RUB (0x7F), ACK (0x7C) e ESC (0x7E). Existem referências inconsistentes para um caractere ALT-MODE (0x7D) no ASCII-63. Na versão de 1967, o RUB tornou-se DEL e permaneceu na mesma posição, mas ACK e ESC foram para a área de caracteres de controle (col-1). No ASCII-67, ^ substituiu o símbolo de seta para cima e _ substituiu o símbolo de seta para a esquerda
ASCII-63 e ASCII-67 são as variantes comuns do ASCII, mas parece ter havido também algumas versões transitórias: no manual Teletype Model 33, há referências a uma versão de 1965 do ASCII, que tinha SS no lugar de SUB (0x1A), \ para @ (0x40), ~ para \ (0x5C), um caractere ímpar no lugar de | (0x7C) e | para ~ (0x7E). Um cartão de código Teletype para máquinas M33 e M35 indica uma versão 1966 do ASCII, embora os caracteres imprimíveis mostrados no cartão sejam idênticos em todas as versões.
Isso costumava ser bem conhecido, devido aos problemas de troca de arquivos entre codificações diferentes, como ASCII e EBCDIC, onde ainda havia impressoras capazes de renderizar setas para cima, desde que o caractere não existisse mais no ASCII.
vi
(pelo menos a uma em SunOS 3,5) utilizado um acento circunflexo / circunflexa em frente de cartas para reprecents CTRL-C, ctrl-V, etc.stty
fez e faz isso também. Por outro lado,^
funcionou como sinônimo de|
scripts de shell durante essa época, portanto, você sempre teria que fazer uma barra invertida no cursor emstty
invocações. Boa pergunta.