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: Brno, Česko
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.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

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/urandom
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.[/quote]
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 ;-)

[ Generated in 0.012 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00016 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00118 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.129.211.87' WHERE u.id=1
0.00126 UPDATE punbb_online SET logged=1715091792 WHERE ident='3.129.211.87'
0.00051 SELECT * FROM punbb_online WHERE logged<1715091492
0.00113 SELECT topic_id FROM punbb_posts WHERE id=217983
0.00133 SELECT id FROM punbb_posts WHERE topic_id=22544 ORDER BY posted
0.00125 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22544 AND t.moved_to IS NULL
0.00010 SELECT search_for, replace_with FROM punbb_censoring
0.00137 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22544 ORDER BY p.id LIMIT 0,25
0.00120 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22544
Total query time: 0.00955 s