hex2dec.sh
Napisz w języku powłoki funkcję, która sprawdzi czy pierwszy parametr wywołania jest poprawną liczbą w zapisie szestnastkowym. Funkcja pod swoją nazwą ma zwracać: wartość dziesiętną liczby gdy jest poprawna, -1 w przeciwnym wypadku. © GMB
#! /bin/bash function hex2dec { count=${#1} tablica=$1 c=$count d=1 dec=0 while [ $c -gt 0 ]; do test=${tablica:$((count-$d)):1} #przekształcanie liter touch tmp echo $test > tmp test2=`grep -cv '[0-9,a-f]' tmp` if [ $test2 -gt 0 ] ; then echo zle; exit -1 fi #obliczanie case $test in "a") test=10;; "b") test=11;; "c") test=12;; "d") test=13;; "e") test=14;; "f") test=15;; esac wynik=$((wynik+$((test*$((16**$((d-1)))))))) d=$[d+1] c=$[c-1] done echo $wynik } hex2dec $1