On Tue, Nov 06, 2001 at 05:44:14PM +0100, Christian Perle wrote:
kann, muß man sie wohl in die ACCSI-Darstellung wandeln (wie macht man das in bash?). Dann geht + - ^ und über Zwischenschritte auch <<<
Such mal in der Manpage zu bash nach "ARITHMETIC EVALUATION", da wirst Du fuendig. In bash funktioniert z.B.:
echo $[1<<4] (left bitwise shift)
echo $[49152^16385] (bitwise XOR)
echo $[10&9] (bitwise AND)
echo $[0x100|0x3f] (bitwise OR, Operanden hexadezimal)
Es geht also schon einiges, sogar mit bash 1.14. Rechtsrotieren muesste man mit maskieren und links schieben emulieren koennen.
mmh, genau das hab ich oben geschrieben. Danke für die Wiederholung :)
Das einzige was mir noch felte war die Umwandlung der Eingabe in eine ASCII-Darstellung als Dezimalzahl oder Hexzahl
Beispiel: ich will /bin/ls verschlüsseln, also starte ich mein Programm so:
$mein_crypt_skript.sh < /bin/ls > bin-ls.bin
Soweit ist das sicher klar. jetzt mein Problem:
$ od -h /bin/ls 0000000 457f 464c 0101 0001 0000 0000 0000 0000 ...
ls geht also mit 0x457f464c los. Dieses 0x457f464c muß also erstmal in eine shellvariable gelangen (oder meinetwegen nur ein einzelne bytes). Das erste Byte lese ich mit "read -n 1 foo" ein. Wie mache ich dann aus dem Inhalt von $foo die Zeichenkette "0x45" um mit ihr rechnen zu können?
Hoffentlich war das jetzt verständlich...
Reinhard
man das irgendwie mit bashinterna lösen?
bye, Chris -- Christian Perle perle@itm.tu-clausthal.de Grunaer Str. 31 http://www.itm.tu-clausthal.de/~perle/ 01069 Dresden LinuxGuitarKitesBicyclesBeerPizzaRaytracing
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd