hex in bourne shell

F

felixka

Jungspund
ich möchte in einer shell hex werte incrementieren.
Dezimal hab ich's so hinbekommen:
Code:
KEY=10
KEY=`expr $KEY + 1`
echo $KEY

Wie geht's in hex:think:
Code:
KEY=1A
??????
echo $KEY
 
hi,

wie waers hiermit?

Code:
let "Key = 0x1A"
let "Key = $Key + 1"


mfg,
bytepool
 
HI, danke für die schnelle Antwort.
Geht aber leider nicht richtig.
Ich hab mir zum Prüfen ein kleines Script mit 5 Inkrementen geschrieben:
Code:
#!/bin/sh 
i=5
let "KEY = 0x0A"

while expr $i != 0 > /dev/null; do
	
	echo "KEY = $KEY + 1"

	i=`expr $i - 1`
	sleep 1
done

Das ist die Ausgabe des Scripts:
Code:
KEY = 10 + 1
KEY = 10 + 1
KEY = 10 + 1
KEY = 10 + 1
KEY = 10 + 1

Hex 0x0A wird in dec 10 gewandelt, aber es wird nichts addiert:think:

Ich bräuchte das Ergebnis in hex:
Code:
KEY = 0A
KEY = 0B
KEY = 0C
KEY = 0D

gruss - felix
 
Code:
KEY = $KEY + 1
echo $KEY

man echo..........:D
 
Danke
Das rechnet richtig:
Code:
KEY=$((KEY + 1 ));
Gibt aber nicht in hex sondern in dez aus

Code:
((KEY++));
Geht nicht, mag an meinem embedded Linux liegen

gruss - felix
 
Zum Thema Hex hatte ich dir ja schon etwas gesagt, bzw. einen passenden Link geschickt.

Verwende bc und gib das Format an.

Oder nimm printf
$ i=0; while (( $i < 20 ));do ((i++));printf "Dez %02d Hex %02X \n" $i $i;done
Dez 01 Hex 01
Dez 02 Hex 02
Dez 03 Hex 03
Dez 04 Hex 04
Dez 05 Hex 05
Dez 06 Hex 06
Dez 07 Hex 07
Dez 08 Hex 08
Dez 09 Hex 09
Dez 10 Hex 0A
Dez 11 Hex 0B
Dez 12 Hex 0C
Dez 13 Hex 0D
Dez 14 Hex 0E
Dez 15 Hex 0F
Dez 16 Hex 10
Dez 17 Hex 11
Dez 18 Hex 12
Dez 19 Hex 13
Dez 20 Hex 14

Gruß Wolfgang
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

HandbrakeCLI Shell Skript

Spalten einer Datei in neue Datei integrieren.

Bestimmte Zeilen einer Spalte addieren

Zurück
Oben