Как преобразовать ASCII-символ в целое число в bash?

10

Я анализирую вывод ntpq, чтобы передать его содержимое в нашу базу данных через консольную утилиту. Первый элемент - это односимвольная подстрока, содержащая статус удаленного. Это может быть "*", "+", "o", "#" и т. Д. Я бы лучше поместил его в БД в виде числа, чтобы его можно было легко хранить с помощью хранимых процедур, но я понятия не имею, как преобразовать символ в его представление ASCII в bash.

akalenuk
источник

Ответы:

17

Поместите вашего персонажа в переменную А.

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

Некоторые примеры:

$ 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
источник
Это , вероятно , само собой разумеется, но сама переменная не требуется: например, printf '%d\n' "'*".
Сэм Маринелли