Jak przekonwertować znak ASCII na liczbę całkowitą w bash?

10

Analizuję dane wyjściowe NTTP, aby przekazać jego zawartość do naszej bazy danych za pomocą narzędzia konsoli. Pierwszy element to jedno znakowy podciąg zawierający status pilota. Może to być „*”, „+”, „o”, „#” itd. Lepiej umieszczę go w DB jako liczbę, aby można go było łatwo przechowywać w procedurach przechowywanych, ale nie mam pojęcia, jak to zrobić przekonwertować znak na jego reprezentację ASCII w bash.

akalenuk
źródło

Odpowiedzi:

17

Umieść swoją postać w zmiennej A.

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

Kilka przykładów:

$ 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
źródło
Prawdopodobnie jest to oczywiste, ale sama zmienna nie jest wymagana: np printf '%d\n' "'*".
Sam Marinelli