GNU/Linux >> Linux Esercitazione >  >> Linux

Come leggere la stringa come numero esadecimale in Bash?

Ho la linea bash:

expr substr $SUPERBLOCK 64 8

Che è la riga della stringa di ritorno a me:

00080000

So che questo è, in realtà, uno 0x00080000 in little-endian. C'è un modo per creare una variabile intera da esso in bash in big-endian come 0x80000?

Risposta accettata:

Probabilmente un modo migliore per farlo, ma ho trovato questa soluzione che converte il numero in decimale e poi di nuovo in esadecimale (e aggiunge manualmente 0x ):

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

Che potresti scrivere come:

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

Linux
  1. Come creare una matrice di elementi unici da una stringa/array in Bash?

  2. Come dividere una stringa nello script Bash

  3. Come verificare se la stringa contiene una sottostringa in Bash

  4. Script Bash - Come leggere l'input dell'utente

  5. Come posso verificare se una variabile è un numero in Bash?

Come utilizzare il comando di lettura Bash

Bash printf - Come stampare una variabile in Bash

Come leggere i file riga per riga in Bash

Come leggere un file riga per riga in Bash

Come verificare se una stringa contiene una sottostringa in Bash

Come posso ottenere l'ultimo numero dalla stringa in bash?