GNU/Linux >> Znalost Linux >  >> Linux

Jak číst řetězec jako hexadecimální číslo v Bash?

Mám bash line:

expr substr $SUPERBLOCK 64 8

Což je řádek return to me:

00080000

Vím, že toto je ve skutečnosti 0x00080000 v little-endian. Existuje způsob, jak z toho vytvořit celočíselnou proměnnou v bash v big-endianu, jako je 0x80000?

Přijatá odpověď:

Pravděpodobně lepší způsob, jak to udělat, ale přišel jsem s tímto řešením, které převádí číslo na desítkové a poté zpět na šestnáctkové (a ručně přidá 0x ):

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

Což můžete napsat jako:

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

Linux
  1. Jak vytvořit pole jedinečných prvků ze řetězce/pole v Bash?

  2. Jak získat Tty ve kterém Bash běží?

  3. Jak rozdělit řetězec ve skriptu Bash

  1. Bash Script - Jak číst uživatelský vstup

  2. Jak otestuji, zda je proměnná číslo v Bash?

  3. Jak v Bash přidám řetězec za každý řádek v souboru?

  1. Jak přidat ikonu do výzvy bash

  2. Jak mohu získat poslední číslo z řetězce v bash?

  3. Jak najít index slova v řetězci v bash?