История изменений
Исправление
sdio,
(текущая версия)
:
Чистый баш без единой доп. утилиты.
#!/bin/bash
TAB=( '' '4' '3' '3 4' '2' '2 4' '2 3' '2 3 4' '1' '1 4' '1 3' '1 3 4' '1 2' '1 2 4' '1 2 3' '1 2 3 4')
INPUT="$1"
i=0
w=0
while [ "${INPUT:$i:1}" ]; do
sym="${INPUT:$i:1}"
# filter and "convert" input characters
case $sym in
"0" )
;;
"1" )
;;
"2" )
;;
"3" )
;;
"4" )
;;
"5" )
;;
"6" )
;;
"7" )
;;
"8" )
;;
"9" )
;;
"a" )
sym=10;;
"A" )
sym=10;;
"b" )
sym=11;;
"B" )
sym=11;;
"c" )
sym=12;;
"C" )
sym=12;;
"d" )
sym=13 ;;
"D" )
sym=13 ;;
"e" )
sym=14 ;;
"E" )
sym=14 ;;
"f" )
sym=15 ;;
"F" )
sym=15 ;;
*)
sym='-1' ;;
esac
i=$(($i+1))
if [ "$sym" != '-1' ]; then
LST="${TAB[$sym]}"
for s in $LST; do
echo $(($s+$w))
done
w=$(($w+4))
fi
done
./1.sh '20 08 03 00'
3
13
23
24
Исходная версия
sdio,
:
Чистый баш без единой доп. утилиты.
#!/bin/bash
TAB=( '' '4' '3' '3 4' '2' '2 4' '2 3' '2 3 4' '1' '1 4' '1 3' '1 3 4' '1 2' '1 2 4' '1 2 3' '1 2 3 4')
INPUT="$1"
i=0
w=0
while [ "${INPUT:$i:1}" ]; do
sym="${INPUT:$i:1}"
# filter and "convert" input characters
case $sym in
"0" )
;;
"1" )
;;
"2" )
;;
"3" )
;;
"4" )
;;
"5" )
;;
"6" )
;;
"7" )
;;
"8" )
;;
"9" )
;;
"a" )
sym=10;;
"A" )
sym=10;;
"b" )
sym=11;;
"B" )
sym=11;;
"c" )
sym=12;;
"C" )
sym=12;;
"d" )
sym=13 ;;
"D" )
sym=13 ;;
"e" )
sym=14 ;;
"E" )
sym=14 ;;
"f" )
sym=15 ;;
"F" )
sym=15 ;;
*)
sym='-1' ;;
esac
i=$(($i+1))
if [ "$sym" != '-1' ]; then
LST="${TAB[$sym]}"
for s in $LST; do
echo $(($s+$w))
done
w=$(($w+4))
fi
done