• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obsługa podstawowych wyjątków - skrypt w bashu.

Object Storage Arubacloud
0 głosów
982 wizyt
pytanie zadane 20 listopada 2015 w Inne języki przez sh1nen Obywatel (1,570 p.)
#!/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 .

1 odpowiedź

+1 głos
odpowiedź 21 listopada 2015 przez SyntaxError Pasjonat (17,170 p.)
elo=2;

if [[ -n ${elo//[0-9]/} ]]; then 
     echo "nie jest liczbą"; 
else 
     echo "jest liczbą"; 
     # teraz to się wykona
fi

elo="elo";

if [[ -n ${elo//[0-9]/} ]]; then 
     echo "nie jest liczbą"; 
     # a teraz to się wykona
else 
     echo "jest liczbą"; 
fi

 

Przeanalizuj sobie to i myślę, że sobie poradzisz. ;)

komentarz 23 listopada 2015 przez sh1nen Obywatel (1,570 p.)
dzięki wielkie ;) skorzystałem z dokumentacji i wyszło podobnie ;)

Podobne pytania

+1 głos
1 odpowiedź 324 wizyt
pytanie zadane 13 czerwca 2021 w Inne języki przez mattaha Użytkownik (690 p.)
0 głosów
1 odpowiedź 192 wizyt
pytanie zadane 22 maja 2016 w Inne języki przez Vendea Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 228 wizyt
pytanie zadane 21 czerwca 2021 w Nasze projekty przez mattaha Użytkownik (690 p.)

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...