Bagaimana cara mengubah karakter ASCII ke integer di bash?

9

Saya mem-parsing output ntpq untuk meneruskan kontennya ke database kami melalui utilitas konsol. Elemen pertama adalah substring satu karakter yang berisi status remote. Bisa jadi "*", "+", "o", "#" dll. Sebaiknya saya taruh di DB sebagai angka, jadi bisa dengan mudah dipegang oleh prosedur yang tersimpan, tapi saya tidak tahu, bagaimana untuk mengubah karakter menjadi representasi ASCII di bash.

akalenuk
sumber

Jawaban:

14

Masukkan karakter Anda ke dalam variabel A.

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

Beberapa contoh:

$ 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
sumber
Ini mungkin tidak perlu dikatakan lagi, tetapi variabel itu sendiri tidak diperlukan: mis., printf '%d\n' "'*".
Sam Marinelli