EPIC4 Manual


wait

wait [for] [%proces | -cmd command]

Pozwala upewnić się, że dane polecenie zostanie wykonane do końca, zanim zacznie działać następne. W zasadzie wait jest użyteczne do dwóch rzeczy:
1. oczekiwanie na dane dostarczane przez iRC server
2. oczekiwanie na dane dostarczane przez procesy exec
W innych przypadkach można go z powodzeniem jakoś wyminąc i zastącpić innym rozwiązaniem.

wait może działać na kilka spsobów:

Zasada działania wait z serverem:


alias sc {
   echo *** Te osoby są na kanale $C
   //names $C
   wait
   echo *** I to by było na tyle.
}

Wynikiem będzie:

*** Te osoby są na kanale #pikachu
*** On channel #pikachu: @Raichu Machoke Growlithe
*** I to by było na tyle.


Bez wait dane od servera dotarłyby po zakończeniu '/sc' i wykonanie tego aliasa wyglądałoby tak:

*** Te osoby są na kanale #pikachu
*** I to by było na tyle.
*** On channel #pikachu: @Raichu Machoke Growlithe


Zasada działania wait z procesami exec:


alias finger {
   echo *** Fingerujemy usera z loginem $0:
   exec -name ktoto finger $0
   wait %ktoto
   echo *** I to by było na tyle.
}

Już może bez przykładów, ale gdyby zabrakło oczwkiwania na wynik procesu %ktoto, pomieszałaby się kolejność wyświetlania textów.


Przykład zastosowania konstrukcji wait for znajdziesz w opisie polecneia bless.

A wait -cmd działa mniej więcej tak:


alias pika {
   wait -cmd echo *** Ten text pojawi się na samym końcu.
   echo *** Ten text pojawi się pierwszy.
   echo *** Ten text pojawi się jako drugi.
}

Z wait trzeba uważać, aby nie przytkał clienta. Szczególnie jest to niekorzystne, gdy oczekujemy na jakieś dane od servera i mamy lagi -- czas może się wtedy niemiłosiernie dłuzyć... a my nic nie możemy na to poradzić, bo client się zablokował. Szczególnie jest to mało przyjemne w starych skryptach podczas op-wojny, gdy momentalnie nabieramy ogomnego laga i nie można w ogóle nic robić (bo np. polecenie /mass zawiera w sobie wait!).
W zasadzie prawie wszystko można zrobić bez użycia wait, a z użyciem odpowiednich ONów: np raw_irc lub numerków. Poza tym, że działa to szybiej i efektywniej - jest bezpieczniejsze. Chyba tylko czasem trzeba używać wait razem z exec, ale nie jest to aż tak straszne.

Zobacz także: pause, sleep, usleep, timer



Lista Poleceń EpiC4 Home Następny Paragraf