GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie liest man eine Zeichenfolge als Hex-Zahl in Bash?

Ich habe die Bash-Zeile:

expr substr $SUPERBLOCK 64 8

Welches ist die Zeichenkette zurück zu mir:

00080000

Ich weiß, dass dies eigentlich ein 0x00080000 in Little-Endian ist. Gibt es eine Möglichkeit, Integer-Variablen daraus in Bash in Big-Endian wie 0x80000 zu erstellen?

Akzeptierte Antwort:

Wahrscheinlich ein besserer Weg, dies zu tun, aber ich habe mir diese Lösung ausgedacht, die die Zahl in eine Dezimalzahl und dann wieder in eine Hexadezimalzahl konvertiert (und den 0x manuell hinzufügt ):

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

Was Sie schreiben könnten als:

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

Linux
  1. Wie erstelle ich ein Array eindeutiger Elemente aus einer Zeichenfolge/einem Array in Bash?

  2. Wie bekomme ich das Tty, in dem Bash läuft?

  3. So teilen Sie eine Zeichenfolge in Bash-Skript auf

  4. So finden Sie die Länge der Zeichenfolge in Bash [Schneller Tipp]

  5. So prüfen Sie, ob String in Bash einen Teilstring enthält

So verwenden Sie den Bash-Lesebefehl

Bash printf - So drucken Sie eine Variable in Bash

So lesen Sie Dateien Zeile für Zeile in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

So prüfen Sie, ob eine Zeichenfolge in Bash eine Teilzeichenfolge enthält

Wie funktioniert cat << EOF in Bash?