Portál AbcLinuxu, 27. dubna 2024 02:06
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.