#!/bin/bash
echo " "
echo "Wybierz Nr zadania"
echo "[1] Znajduje wartosc maksymalna i minimalna zbioru"
echo "[2] Wylicza sume kolejnych liczb naturalnych [a,b]"
select Zadanie in 1 2
do
case $Zadanie in
"1") echo "Wybrałeś Zadanie [1] "
if [ ! -f "$1" ]; then
echo " plik $1 nie istnieje, badz podales zla nazwe pliku. "
exit
fi
while IFS=";" read -r -a tablica; do
echo ${tablica[*]}
min=${tablica[0]}
max=${tablica[0]}
i=1
while [ $i -lt ${#tablica[*]} ]; do
if [ ${tablica[$i]} -lt $min ]; then min=${tablica[$i]}
elif [ ${tablica[$i]} -gt $max ]; then max=${tablica[$i]}
fi
i=$[ $i + 1 ]
done
done < $1
echo "minimum = $min , a maximum = $max "
;;
"2") echo "Wybrałeś Zadanie [2] "
echo "Podaj liczbe a z przedzialu [a,b]"
read a
echo "Podaj liczbe b z przedzialu [a,b]"
read b
if [ $a -le 0 ]; then echo "To nie jest liczba naturalna"; exit;
elif [ $b -le 0 ]; then echo "To nie jest liczba naturalna"; exit; fi
suma=0
x=$a
while [ $a -le $b ]; do
suma=$[ $suma + $a ]
a=$[ $a + 1 ]
continue
done
echo "Suma liczb naturalnych zbioru [$x,$b]--- $suma";;
*) echo "Nic nie wybrałeś";;
esac
break
done
Program( pobiera z pliku wartości do tablicy po czym wyznacza wartość maksymalna i minimalna oraz liczy sume kolejnych liczb naturalnych z jakiegoś określonego przez użytkownika przedziału .)
Mam na zajęcia do napisania kilka podstawowych skryptów , z czego akurat jak w powyższym mam problem z obsługą podstawowych wyjątków , aby po wprowadzeniu przez przez użytkownika zamiast liczby całkowitej jakiegoś dowolnego znaku z klawiatury jak np '$' , czy to w momencie wyboru opcji czy liczeniu sumy kolejnych liczb naturalnych , wyświetlać komunikat o nieprawidłowej wartości podanej z klawiatury , może jest to to banał (jeśli tak to przepraszam ) ale prowadzący dał tydzień aby nauczyć się pisać skrypty w bashu od zera co trochę mnie przerasta . Z góry wielkie dzięki za wszelkie podpowiedzi lub sugestie .