¿Cómo convertir el carácter ASCII a entero en bash?

10

Estoy analizando una salida ntpq para pasar su contenido a nuestra base de datos a través de la utilidad de la consola. El primer elemento es una subcadena de un carácter que contiene el estado del control remoto. Puede ser "*", "+", "o", "#", etc. Es mejor que lo coloque en la base de datos como un número, para que pueda almacenarse fácilmente mediante procedimientos almacenados, pero no tengo idea de cómo para convertir un personaje en su representación ASCII en bash.

akalenuk
fuente

Respuestas:

17

Pon tu personaje en la variable A.

printf '%d\n' "'$A"

Algunos ejemplos:

$ A="*"; printf '%d\n' "'$A"
42
$ A="+"; printf '%d\n' "'$A"
43
$ A="#"; printf '%d\n' "'$A"
35
$ A="o"; printf '%d\n' "'$A"
111
suprjami
fuente
Esto probablemente es evidente, pero la variable en sí misma no es necesaria: por ejemplo, printf '%d\n' "'*".
Sam Marinelli