O caractere “tick” ou “acento agudo” ´ (não `) é usado para qualquer coisa no shell do Linux?


11

Sabemos que o caractere backtick é usado para substituição de comando :

chown `id -u` /mydir

O que me fez pensar: o caractere tick é ´usado para qualquer coisa no shell do Linux?


Nota: aliás, a substituição de comandos também pode ser escrita mais facilmente como
chown $(id -u) /mydir


3
Eu não tinha certeza do nome, mas pensei que ´fosse chamado sotaque agudo apenas quando usado como diacrítico (e, inversamente, `é chamado sotaque grave ). Quando usado sozinho, como o último é um backtick , parecia natural que o primeiro fosse chamado de tick ou forward (por favor, não vamos chamá-lo de backtick reverso ). Modifiquei a pergunta do título para incluir sua anotação.
Dr_

1
justo. Eu removi o comentário.
Stéphane Chazelas

1
@ dr01 Pode valer a pena colocar no título algo como "(não`) "para ajudar na confusão.
Captain Man

Um personagem de aparência semelhante, o apóstrofo ( 'ASCII 39, U + 0027) tem significado em muitos shells do Unix (por exemplo, o shell Bourne /bin/sh) e shells do Linux (por exemplo /bin/bash). Impede a divisão de palavras e todas as expansões. Portanto, ls '$foo [bar]'retorna um erro, a menos que haja um arquivo nomeado $foo [bar]no diretório atual. É equivalente a ls "\$foo [bar]"e ls \$foo\ \[bar\].
pts

1
Existem muitos caracteres de aparência semelhante no Unicode, consulte cl.cam.ac.uk/~mgk25/ucs/quotes.html para obter uma lista incompleta e consulte en.wikipedia.org/wiki/Prime_(symbol) para mais alguns símbolos. . De todos estes, apenas os caracteres ASCII ( ', ", `) têm significado especial em conchas Unix.
pts

Respostas:


28

Os conjuntos de caracteres usados ​​historicamente com o Unix, incluindo ASCII , não possuem um caractere de escala, portanto não foram usados. Tanto quanto sei, nenhum uso comum para esse personagem foi introduzido desde que ele se tornou disponível; nem seria, já que não está incluído no conjunto de caracteres portáteis do POSIX .

aparentemente foi originalmente incluído no ASCII (junto com ^ e ~) para servir como diacrítico. Quando o ASCII foi definido, o apóstrofo era tipicamente representado por um glifo no estilo ′ ("prime", usado por minutos ou pés), em vez de um apóstrofo reto ", e também era usado como um sotaque agudo diacrítico.

Historicamente, na documentação do shell do Unix, `era chamado de sotaque grave , não de backtick. A falta de um tiquetaque para a frente não teria levantado as sobrancelhas, principalmente porque 'foi usado como caráter complementar (veja roffsintaxe).


5
"Presumivelmente, não foi considerado comum o suficiente para fazer o corte (apesar do uso generalizado em idiomas não americanos)." Touché.
Dr_

6
Caracteres fora do conjunto de caracteres portáteis POSIX (um subconjunto de ASCII) não seriam usados ​​na sintaxe de shells, pois sua codificação normalmente varia entre localidades (e pode não ser encontrada em algumas incluindo a localidade C). Por exemplo, em um sistema GNU, ´é 0xB4 em um código de idioma fr_FR.iso88591, 0xC2 0xB4 em um código de idioma fr_FR.UTF-8 e não existe no código C.
Stéphane Chazelas

@ StéphaneChazelas O que você diz permanece verdadeiro, mesmo que fr_FRseja substituído por qualquer outro idioma. A codificação do caractere é uma propriedade da codificação (ISO-8859-1 ou UTF-8).
Kasperd #

2
@ Kasperd, sim, eu não quis dizer que o idioma fez a diferença. A escolha de fr_FRfoi arbitrária, acontece que eu tenho esses locais no meu sistema. Claro que seria o mesmo com en_GB.UTF-8...
Stéphane Chazelas

12

Embora o comitê ASCII tenha pensado em `` como um diacrítico e '' como um apóstrofo, a tradição do Unix era tratá-los como aspas simples esquerda e direita (os caracteres que agora estão no Unicode como U + 2018 e U + 2019). Isso é mais óbvio na convenção TeX de que você escreve `` texto entre aspas '' na fonte da marcação e obtém "texto entre aspas" no documento formatado. Isso também pode ser visto em fontes monoespaçadas mais antigas, como as fontes de bitmap fornecidas com o X11R5 e o X11R6, onde os dois caracteres receberam glifos de imagem espelhada.

Como tal, `e 'foram considerados inversos um ao outro e ´ não parecia estar faltando.


3
Ah, sim, eu lembro da sintaxe do LaTeX!
Dr_

1
@ dr01: Que de repente faz sentido quando você descobre que algumas das fontes antigas as têm como espelhos uma da outra.
Joshua

2
'foi explicitamente definido em ASCII como APOSTROPHE, RIGHT SINGLE COTATATION MARK, ACUTE_ACCENT by ANSI, não é apenas uma coisa do Unix. Não há outras aspas simples no ASCII.
Stéphane Chazelas

2
@ Josué: A mudança das referidas fontes foi motivo de grande controvérsia / reação quando aconteceu (provavelmente no final dos anos 90 ou logo após 2000). Não eram apenas fontes xterm, mas todas as fontes de bitmap X11 padrão, incluindo o bitmap Times / Helvetica / etc. usado em navegadores e outros aplicativos com fontes com espaçamento proporcional.
R .. GitHub Pare de ajudar o gelo

1
Infelizmente, não há reação suficiente para detê-lo! Defensores do Unicode correndo por aí dizendo a todos que o apóstrofo ASCII é uma linha vertical, em contradição direta com o exemplo de glifo no padrão ASCII atual ... e agora quase todas as fontes têm essa coisa estúpida na posição 0x27 em vez de um apóstrofo de aparência decente
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.