¿Se usa el carácter "tick" o "acento agudo" ´ (no `) para algo en el shell de Linux?


11

Sabemos que el carácter de retroceso se usa para la sustitución de comandos :

chown `id -u` /mydir

Lo que me hizo preguntarme: ¿se ´usa el carácter de marca para algo en el shell de Linux?


Nota: por cierto, la sustitución de comandos también se puede escribir de forma más legible como
chown $(id -u) /mydir


3
No estaba seguro del nombre, pero pensé que ´se llama acento agudo solo cuando se usa como diacrítico (y, por el contrario, `se llama acento grave ). Cuando se usa solo, ya que el último es un retroceso , parecía natural que el primero se llamara tic o tick hacia adelante (por favor, no lo llamemos backtick inverso ). He modificado la pregunta del título para incluir su nota.
dr_

1
lo suficientemente justo. He eliminado el comentario.
Stéphane Chazelas

1
@ dr01 Puede valer la pena poner en el título algo como "(no`) "para ayudar con la confusión.
Capitán Man

Un carácter similar, el apóstrofe ( ', ASCII 39, U + 0027) tiene significado en muchos shells de Unix (por ejemplo, el shell Bourne /bin/sh) y shells de Linux (por ejemplo /bin/bash). Impide la división de palabras y todas las expansiones. Entonces ls '$foo [bar]'devuelve un error a menos que haya un archivo nombrado $foo [bar]en el directorio actual. Es equivalente a ls "\$foo [bar]"y ls \$foo\ \[bar\].
pts

1
Hay muchos caracteres de aspecto similar en Unicode, consulte cl.cam.ac.uk/~mgk25/ucs/quotes.html para obtener una lista incompleta, y consulte en.wikipedia.org/wiki/Prime_(symbol) para obtener más símbolos . De todos ellos, sólo los caracteres ASCII ( ', ", `) tienen un significado especial en el shell de Unix.
pts

Respuestas:


28

Los conjuntos de caracteres utilizados históricamente con Unix, incluido ASCII , no tienen un carácter de marca, por lo que no se utilizó. Hasta donde sé, no se ha introducido un uso común para ese personaje desde que está disponible; ni lo haría, ya que no está incluido en el juego de caracteres portátil de POSIX .

Aparentemente, `se incluyó originalmente en ASCII (junto con ^ y ~) para servir como diacrítico. Cuando se definió ASCII, el apóstrofe se representaba típicamente con un glifo de estilo ′ ("primo", como se usaba durante minutos o pies) en lugar de un apóstrofe directo ', y también se usaba como un acento diacrítico agudo.

Históricamente, en la documentación de shell de Unix, `se refería a él como un acento grave , no como un retroceso. La falta de un tic de avance no habría despertado las cejas, especialmente porque 'se utilizó como el carácter complementario (ver roffsintaxis).


55
"Presumiblemente ´ no se consideraba lo suficientemente común como para hacer el corte (a pesar de su uso generalizado en idiomas no estadounidenses)". Touché
dr_

66
Los caracteres que se encuentran fuera del juego de caracteres portátil POSIX (un subconjunto de ASCII) no se utilizarían en la sintaxis de los shells, ya que su codificación normalmente variaría entre las configuraciones regionales (y es posible que no se encuentren en algunos, incluida la configuración regional C). Por ejemplo, en un sistema GNU, ´es 0xB4 en un entorno local fr_FR.iso88591, 0xC2 0xB4 en un entorno fr_FR.UTF-8 y no existe en el entorno local C.
Stéphane Chazelas

@ StéphaneChazelas Lo que dices sigue siendo cierto incluso si fr_FRse reemplaza con cualquier otro idioma. La codificación del carácter es una propiedad de la codificación (ISO-8859-1 o UTF-8).
kasperd el

2
@kasperd, sí, no quise decir que el idioma marcara la diferencia. La elección de fr_FRfue arbitraria, simplemente sucede que tengo tales configuraciones regionales en mi sistema. Por supuesto, sería lo mismo con en_GB.UTF-8...
Stéphane Chazelas

12

Aunque el comité ASCII pensó en 'como un diacrítico y' como un apóstrofe, la tradición de Unix era tratarlos como comillas simples izquierda y derecha (los caracteres que ahora están en Unicode como U + 2018 y U + 2019). Esto es más obvio de la convención de TeX que escribe `` texto citado '' en la fuente de marcado y obtiene "texto citado" en el documento formateado. Esto también se puede ver en las fuentes monoespaciales más antiguas, como las fuentes de mapa de bits incluidas con X11R5 y X11R6, donde los dos caracteres recibieron glifos de imagen especular.

Como tal, 'y' se consideraron inversos entre sí, y 'no se sentía que faltara.


3
Ah sí, recuerdo esa sintaxis de LaTeX!
dr_

1
@ dr01: lo que de repente tiene sentido cuando descubres que algunas de las fuentes antiguas las tienen como espejos entre sí.
Joshua

2
'se definió explícitamente en ASCII como APÓSTROFO, MARCA DE COTIZACIÓN SENCILLA DERECHA, ACUTE_ACCENT por ANSI, no es solo una cosa de Unix. No hay otra comilla simple correcta en ASCII.
Stéphane Chazelas

2
@Joshua: El cambio de dichas fuentes fue un tema de gran controversia / reacción violenta cuando sucedió (probablemente a finales de los 90 o poco después del 2000). No se trataba solo de las fuentes xterm, sino de todas las fuentes de mapa de bits X11 estándar, incluido el mapa de bits Times / Helvetica / etc. utilizado en navegadores y otras aplicaciones con fuentes proporcionales.
R .. GitHub DEJA DE AYUDAR A ICE

1
¡Desafortunadamente no hay suficiente reacción para detenerlo! Unicode aboga por decirle a todos que el apóstrofe ASCII es una línea vertical, en contradicción directa con el glifo de ejemplo en el estándar ASCII real ... y ahora casi todas las fuentes tienen esa estupidez en la posición 0x27 en lugar de un apóstrofe de aspecto decente
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.