Todas las secuencias de bytes sin control de las secuencias de comandos que se envían al terminal se interpretan para su visualización según la configuración del terminal. Si lo configura para interpretar los datos entrantes como utf-8, entonces todo lo que necesita hacer en su script bash es generar el carácter Celsius según lo requerido por utf-8.
Configurar su terminal correctamente depende de la aplicación que esté utilizando. Es bastante probable que ya esté en modo utf-8.
Para mostrar el carácter que desea, debe buscar su punto de código Unicode y codificarlo en utf-8 o puede buscarlo en algún lugar donde la secuencia de caracteres utf-8 ya se muestra. El caracter Celsius se describe here por ejemplo.
Celsius UTF-8 secuencia es 0xE2 0x84 0x83, para que pueda mostrar en su cáscara utilizando el constructo $'string'
ya que acepta la \xhh
de escape:
$ echo $'\xe2\x84\x83'
℃
o eco con -e:
$ echo -e '\xe2\x84\x83'
℃
Además, puede asignar a una variable
$ CEL=$'\xe2\x84\x83'
$ echo $CEL
℃
Si usted quiere visualizar ℃ como dos caracteres separados: Carácter grado y la letra C, entonces se puede utilizar this character y este comando:
$ echo $'\xc2\xb0'C
°C
Si está utilizando un shell que no soporta la construcción $'string'
, también se puede utilizar utilidades como perl o Python:
$ python -c 'print "\xe2\x84\x83"'
℃
$ perl -e 'print "\xe2\x84\x83\n"'
℃
En GNU awk
puede utilizar el lenguaje C estándar escapa incluyendo \xhh
, por ejemplo:
$ awk 'BEGIN { print "\xe2\x84\x83"; }'
℃
$ awk 'BEGIN { print "\xc2\xb0\C"; }'
°C
Tenga en cuenta que se necesita una barra invertida adicional para terminar el número hexadecimal (sin ella, la secuencia de escape consume todos los dígitos hexadecimales, incluida la letra C, consulte GNU awk user's guide).
Solución más portátil en awk
es utilizar secuencia octal.Desde hexadecimal 0xC2 es octal 302 y hexadecimal 0xB0 es octal 260, puede hacer lo siguiente:
$ awk 'BEGIN { print "\302\260C"; }'
°C
Del mismo modo,
$ awk 'BEGIN { print "\342\204\203"; }'
℃
gracias por su ayuda – mountpeaks
No soy capaz de encontrar ninguna referencia a la '$' string'' construir; ¿Cuál es su nombre exacto o dónde está documentado? – davide
'man bash' y luego busque' $ '' –