Portál AbcLinuxu, 5. prosince 2025 16:08
Napsal jsem primitivní skriptík "zkoušení násobilky":
vstup=''
i=2
j=1
until [ ${vstup:0:1} == 'q' ]; do
j=$((j+1))
read -p "${i} * ${j} = ?" vstup
case ${vstup:0:1} in
(d)
if [[ ${vstup:1:1} == [[:digit:]] ]]; then
i=${vstup:1:1}; else
i=$((i+1))
fi
j=1
;;
([[:digit:]])
if [ ${vstup} -eq $((i*j)) ]; then
echo "Spravny vysledek"; else
echo "Spatne! Spravne je: $((i*j))"
fi
;;
(q)
;;
(*)
;;
esac
done
Skript by měl zkoušet násobilku (d[n] "skočí" na číslo o jedničku větší nebo na číslo n).
Místo toho: 'q' ukončí skript teprve, až když ho zadám několikrát (výjimkou je, když ho zadám jako první vstup). j se nezvyšuje o jedničku.
Bash 2.05b na Slackware 9.1. Dík za jakoukoli radu.
Dík. On totiž Bash při "Word splitting" ten prázdný řetězec odstraní. "${vstup:0:1}" pomůže.
(Ten skriptík jsem napsal jenom tak na zkoušku, abych si prakticky vyzkoušel to, o čem jsem teoreticky četl v manuálové stránce.)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.