Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-12-20 15:49:24

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

[Solved] Nie wykonuj kodu dopóki warość jest błędna

Witam
Taki przypadek. Przyznam szczerze, że jakaś ciemność umysłu mnie naszła.
Mam 3 opcje w skrypcie : 1,2,3
I teraz jak wybiorę prawidłową z tych trzech to wykonuje określony kod. ( Tutaj klauzule if)
Jednak nie umiem załatwić sprawy z podaniem wartości innej niż 1,2,3.
Chcę w takim przypadku aby w skrypcie był powrót do pytania o wybór opcji.
Może mnie ktoś naprowadzić na rozwiązanie.
Pozdrawiam

Ostatnio edytowany przez rulezdc (2012-12-20 21:22:28)

Offline

 

#2  2012-12-20 16:13:22

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: [Solved] Nie wykonuj kodu dopóki warość jest błędna

Przypisujesz odpowiedź użytkownika do zmiennej i wykonujesz kod tak długo, aż ta wartość nie będzie z akceptowalnego zakresu. Czyli pętla while / until.

Offline

 

#3  2012-12-20 17:01:45

  meciarz - Użytkownik

meciarz
Użytkownik
Zarejestrowany: 2010-06-08

Re: [Solved] Nie wykonuj kodu dopóki warość jest błędna

spróbuj case

Kod:

case <zmienna> in
  "wzorzec1") polecenie1 ;;
  "wzorzec2") polecenie2 ;;
  "wzorzec3") polecenie3 ;;
  *) polecenie_domyślne
esac

Offline

 

#4  2012-12-20 19:56:57

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: [Solved] Nie wykonuj kodu dopóki warość jest błędna

case nic nie da, gdyż jak nie dopasuje to mi wyjdzie z programu, a ja chce powrócić do wyboru

Offline

 

#5  2012-12-20 20:12:36

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [Solved] Nie wykonuj kodu dopóki warość jest błędna

Cytat z pewnej stronki:

Sprawdza czy warunek jest prawdziwy, gdy jest fałszywy wykonywane jest polecenie lub lista poleceń zawartych wewnątrz pętli, miedzy słowami kluczowymi do a done. Pętla until kończy swoje działanie w momencie gdy warunek stanie się prawdziwy.

Sznureczek:
http://dief.republika.pl/while.html

Przykład:

Kod:

#!/bin/bash
x=0;
until [ $x -ge 10000000 ]; do
echo "Napis pojawił się po raz: $x"
sleep 0.01
x=$[x + 1]
done

W powyższym przykładzie, w ciągu ~10000 sekund na własne oczy zobaczysz poprawność funkcji. :D

Pozdrawiam
;-)

Ostatnio edytowany przez Jacekalex (2012-12-20 20:22:46)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2012-12-20 21:23:18

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: [Solved] Nie wykonuj kodu dopóki warość jest błędna

Dzięki za podpowiedzi

Kod:

#!/bin/bash

while :
do
        read -p "Enter number : " a


if [[ $a == 1 ]]
then
        echo "Wybrales 1"
        break
elif  [[ $a == 2 ]]
then
        echo "Wybrales 2"
        break
elif  [[ $a == 3 ]]
then
        echo "Wybrales 3"
        break
elif  [[ $a == 4 ]]
then
        echo "Wybrales 4"
        break
else
        echo "Wrong options,enter correctly number"
fi
done
echo "Ala makota"

Działa jak chce

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)