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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
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
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
spróbuj case
case <zmienna> in "wzorzec1") polecenie1 ;; "wzorzec2") polecenie2 ;; "wzorzec3") polecenie3 ;; *) polecenie_domyślne esac
Offline
case nic nie da, gdyż jak nie dopasuje to mi wyjdzie z programu, a ja chce powrócić do wyboru
Offline
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] doneW 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
Dzięki za podpowiedzi
#!/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
Strony: 1
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00126 | 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.142.200.247' WHERE u.id=1 |
0.00067 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.142.200.247', 1732745215) |
0.00052 | SELECT * FROM punbb_online WHERE logged<1732744915 |
0.00093 | DELETE FROM punbb_online WHERE ident='3.135.202.38' |
0.00075 | SELECT topic_id FROM punbb_posts WHERE id=217983 |
0.00096 | SELECT id FROM punbb_posts WHERE topic_id=22544 ORDER BY posted |
0.00084 | 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.00019 | SELECT search_for, replace_with FROM punbb_censoring |
0.00109 | 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.00083 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22544 |
Total query time: 0.00819 s |