GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lire une chaîne en tant que numéro hexadécimal dans Bash ?

J'ai la ligne bash :

expr substr $SUPERBLOCK 64 8

Qui est la ligne de chaîne de retour à moi :

00080000

Je sais qu'il s'agit en fait d'un 0x00080000 en petit-boutiste. Existe-t-il un moyen de créer une variable entière à partir de celle-ci dans bash en big-endian comme 0x80000 ?

Réponse acceptée :

Probablement une meilleure façon de le faire, mais j'ai trouvé cette solution qui convertit le nombre en décimal puis en hexadécimal (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)))"

Linux
  1. Comment obtenir le Tty dans lequel Bash est en cours d'exécution ?

  2. Comment diviser une chaîne dans un script bash

  3. Bash Script - Comment lire l'entrée de l'utilisateur

  4. Comment tester si une variable est un nombre dans Bash ?

  5. Comment cat << EOF fonctionne-t-il dans bash?

Comment utiliser la commande de lecture Bash

Bash printf - Comment imprimer une variable dans Bash

Comment lire des fichiers ligne par ligne dans Bash

Comment lire un fichier ligne par ligne dans Bash

Comment vérifier si une chaîne contient une sous-chaîne dans Bash

Comment trouver l'index d'un mot dans une chaîne en bash ?