Veröffentlicht 10. Februar 200619 j Man kann's auch zur Fuss... Aber wenn jemand faul ist... #! /bin/bash #for questions and opinions feel free to mail me: pecunia@pisula.net while read -p "Bitte eine dezimale Zahl eingeben: " DZL do echo $DZL | grep ^[a-Z]*$ > /dev/null if [ $? -eq 0 ] then echo "Bitte nur Zahlen eingeben" continue fi echo $DZL | grep ^[0].*$ > /dev/null if [ $? -eq 0 ] then case $DZL in 0) echo "0";; *) echo "Bitte ohne führende 0";; esac else i=0 while [ "$DZL" -ge "$((16**$i))" ] do ERG=$(( 16 ** $i )) i=$[ $i+1 ] done while [ "$ERG" -ge 1 ] do ERG1=$(( $DZL / $ERG )) ERG2=$(( $ERG1 * $ERG )) DZL=$(( $DZL - $ERG2 )) ERG=$(( $ERG / 16 )) case $ERG1 in 10) echo -ne "A";; 11) echo -ne "B";; 12) echo -ne "C";; 13) echo -ne "D";; 14) echo -ne "E";; 15) echo -ne "F";; *) echo -ne $ERG1;; esac done echo fi done Eine kleine Bitte... Sollte jemand dieses Skript nutzen und es auch nützlich finden, würde ich mich über eine Email sehr freuen: pecunia@pisula.net
11. Februar 200619 j Ich weiss, das ist hier kein Programmierwettbewerb und ich will auch nicht besserwisserisch auftreten (ja ich weiss, gerade das tu ich gerade), aber ich habs trotzdem mal verschlankt und unter AIX getestet: #! /bin/bash while read -p "Bitte eine dezimale Zahl eingeben: " DZL do echo $DZL | grep ^[a-Z]*$ > /dev/null if [ $? -eq 0 ] then echo "Bitte nur Zahlen eingeben" continue fi echo 'obase=16;$DZL' |bc done
11. Februar 200619 j Unglaublich... Und ich brauchte über 2 Stunden um es hinzubekommen. Bist Weltklasse...
11. Februar 200619 j Ihr macht mich verlegen... Aber was soll's... ich bin nur Amateur. Danke für die Lektion... Gruß pecunia
11. Februar 200619 j Hallo, Ihr macht mich verlegen... Aber was soll's... ich bin nur Amateur. Danke für die Lektion... Sieh es mal positiv. Du hast den Algorithmus zur Umrechnung selbst implementiert (und damit weisst Du genau, was passiert). Wir hingegen verwenden nur die fertigen Stückchen, die die Shell bzw. das Betriebssystem mit sich bringt Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.