Sascha_77
Aktives Mitglied
Thread Starter
- Dabei seit
- 23.10.2005
- Beiträge
- 766
- Reaktionspunkte
- 99
Hallo Leute.
Ich habe hier derzeit ein kleines Problem. Ich habe einen Wert aus einer Bitmaske den ich in Dezimal umrechnen will. Das Ergebnis eines bestimmten Shellbefehls (nvram) schaut z.b. so aus:
g%00%00%00
und wird mit der ersten Zeile im unteren Bashscript auf "g" reduziert.
Als Ergebnis des Scripts erhalte ich die Zahl "103". Was auch korrekt ist.
Dies funktioniert ebenfalls für diese Werte:
w%00%00%00
P%00%00%00
0%00%00%00
Nun habe ich aber noch Werte die am Anfang anders aussehen. Z.b so:
%14%00%00%00
oder
%10%00%00%00
Dies funktioniert mit obigem Script aber nicht. Wie kann ich diese Art von Werten in eine Dezimalzahl umwandeln?
Ich habe hier derzeit ein kleines Problem. Ich habe einen Wert aus einer Bitmaske den ich in Dezimal umrechnen will. Das Ergebnis eines bestimmten Shellbefehls (nvram) schaut z.b. so aus:
g%00%00%00
und wird mit der ersten Zeile im unteren Bashscript auf "g" reduziert.
Als Ergebnis des Scripts erhalte ich die Zahl "103". Was auch korrekt ist.
Code:
csr=`nvram -p 2> /dev/null |grep "csr-" | cut -c 19`
c_csr2=`echo -n $csr 2> /dev/null | perl -pe 's/(.)/sprintf("%x", ord($1))/eg'`
c_csr=`echo $((16#$c_csr2))`
echo $c_csr
Dies funktioniert ebenfalls für diese Werte:
w%00%00%00
P%00%00%00
0%00%00%00
Nun habe ich aber noch Werte die am Anfang anders aussehen. Z.b so:
%14%00%00%00
oder
%10%00%00%00
Dies funktioniert mit obigem Script aber nicht. Wie kann ich diese Art von Werten in eine Dezimalzahl umwandeln?