POSIXly você pode obter o valor decimal de um número hexadecimal como:
hex=10
echo "$((0x$hex))"
16
E você realmente não precisa fazer todos esses [
tests ]
. Eu acho que o seguinte deve funcionar:
case $f7 in
(EnHr|EnSt|SpJb|Chem|[BT]rTm|PmTm|HyTm)
printf "\t\t\t\t\t%s%b" \
"HEX VALUE is" ":\t$f10" \
'' "inside case loop.\t\t" \
Sen ":\t$f7" \
Val ":\t$((!(inside+=1)|0x$f10))"
esac