web-dev-qa-db-fra.com

Comment lire la chaîne en tant que numéro hexagonal à Bash?

J'ai la ligne Bash:

expr substr $SUPERBLOCK 64 8

Qui est de retour à moi ligne de cordes:

00080000

Je sais que c'est, en fait, un 0x00080000 à Little-Endian. Existe-t-il un moyen de créer une variable entière de celle-ci à Bash dans Big-Endian comme 0x80000?

7
DenisNovac

Probablement une meilleure façon de le faire, mais j'ai proposé cette solution qui convertit le nombre en décimal puis de retour à Hex (et ajoute manuellement le 0x):

printf '0x%x\n' "$((16#00080000))"

Que vous pourriez écrire comme:

printf '0x%x\n' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"
8
jesse_b