Provided by:
manpages-pl_20060617-4_all 
NAZWA
chat - Zautomatyzowany skrypt dialogu z modemem
SK/LADNIA
chat [ options ] script
OPIS
Program chat definiuje wymian rozmow midzy komputerem a modemem. Jego
glownym celem jest zestawianie polcze pomidzy demonem Point-To-Point
(pppd), a procesem pppd drugiego koca.
OPCJE
-f <chat file>
Odczytaj skrypt rozmowy z pliku file. Uywanie tej opcji wyklucza
parametry skryptowe rozmowy. Uytkownik musi mie prawa do odczytu
tego pliku. Dozwolonych jest wiele linii w pliku. Do
oddzielania napisow powinny by uywana spacja lub tabulacja.
-t <timeout>
Ustaw timeout dla odbioru oczekiwanego napisu. Jeli napis nie
zostanie odebrany w limicie czasowym, to napis odpowiedzi nie
jest wysylany. Moe by natomiast wyslana alternatywna odpowied,
lub skrypt moe zosta przerwany w wypadku braku takiej
alternatywy. Chat zakoczy wtedy dzialanie, zwracajc niezerowy
kod bldu.
-r <report file>
Ustaw plik dla wyjcia napisow raportujcych. Jeeli uywasz slowa
kluczowego REPORT, napisy wynikowe s zapisywane do tego pliku.
Jeli opcja ta nie jest uywana, moesz i tak uywa slow REPORT,
ktore uyj pliku stderr.
-v daj uruchomienia skryptu chat w trybie verbose (gadatliwym).
Program chat bdzie wtedy logowal wszystkie teksty uzyskane od
modemu, a take te, ktore sam wysyla. Logi wysylane s do SYSLOG.
-V daj uruchomienia skryptu chat w trybie verbose (gadatliwym), ale
na stderr. (tym si to roni od powyszego). Urzdzenie to jest
zwykle lokaln konsol stacji uruchamiajcej program chat lub pppd.
Opcja ta nie bdzie dziala prawidlowo, jeli stderr jest
przekierowane na /dev/null, co ma miejsce gdy pppd dziala w
trybie `detached' (odlczonym od konsoli). W tym wypadku uyj
opcji `-v' do zapisywania sesji na urzdzeniu SYSLOG.
script Jeli skrypt nie jest podany opcj -f w pliku, to skrypt script
jest wlczany jako parametry programu chat.
SKRYPT ROZMOWY
Skrypt rozmowy definiuje komunikacj.
Skrypt sklada si z jednej lub wikszej iloci par napisow "oczekuj-
wysylaj", oddzielonych spacjami z ewentualnymi dodatkowymi parami
"podoczekuj-podwysylaj", oddzielonymi kresk, jak w przykladzie:
ogin:-BREAK-ogin: ppp ssword: hello2u2
Znaczy to, e chat powinien oczekiwa napisu "ogin:". Jeli to zawiedzie
(nastpi timeout), to wysyla na drugi koniec sekwencj przerwania (break)
i oczekuje napisu "ogin:". Jeli jednak pierwszy "ogin:" zostanie
odebrany, sekwencja przerwania nie jest wysylana.
Gdy ju uzyskalimy prompt logina, chat sprobuje wysla napis ppp i
oczekiwa na prompt "ssword:". Gdy odczyta ten prompt, to wyle haslo,
hello2u2.
Na zakoczenie napisu odpowiedzi zwykle wysylany jest CR. Nie jest on
oczekiwany w napisie "oczekiwania", chyba e jest specyficznie wskazany,
przez uycie sekwencji \r.
Sekwencja oczekiwania powinna zawiera tylko to, co potrzebne do
zidentyfikowania napisu. Poniewa normalnie jest przechowywana na dysku,
nie powinna zawiera informacji zmiennych. Generalnie nie jest
akceptowane podgldanie napisow czasowych, identyfikacji sieci, lub
innych zmiennych jako sekwencji oczekiwanej.
Aby pomoc poprawi znaki, ktore mog by zmienione w sekwencji pocztkowej,
oczekuj raczej napisu "ogin:" ni "login:". Jest moliwe, e pocztkowy
znak bdzie odebrany z bldem, a wtedy moesz nigdy nie znale oczekiwanego
napisu, chocia zostal on wyslany przez system. Z tego powodu, skrypty
oczekuj "ogin:" zamiast "login:" i "ssword:" zamiast "password".
Bardzo prosty skrypt moe wyglda nastpujco:
ogin: ppp ssword: hello2u2
Innymi slowy, oczekuj ....ogin:, wylij ppp, oczekuj ...ssword:, wylij
hello2u2.
W rzeczywistoci proste skrypty s raczej rzadkie. Przynajmniej powiniene
zalczy sekwencje "pod-oczekiwania". Np. rozwa nastpujcy skrypt:
ogin:--ogin: ppp ssword: hello2u2
Bylby to lepszy skrypt ni poprzedni. Oczekiwalby na ten sam prompt
login:, lecz gdyby go nie odebral, wyslalby sekwencj powrotu i
oczekiwal dalej. Gdyby wic szum linii znieksztalcil pierwszy prompt,
to poniejsze przeslanie pustej linii zazwyczaj wygeneruje nowy prompt.
STRINGI PRZERWANIA (ABORT)
Wiele modemow raportuje status polczenia jako napisy. Napisy te to np.
CONNECTED, NO CARRIER, lub BUSY. Czsto jest wlaciwym wylczenie skryptu,
jeli modem nie polczy si z drugim kocem. Przy jednej probie moe odebra
BUSY, podczas gdy nastpnym razem zdarzy si moe NO CARRIER.
Te napisy "przerywania" mog by podane w skrypcie przy uyciu sekwencji
ABORT. Jest to zapisane w poniszym przykladzie:
ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT
Sekwencja ta nie bdzie niczego oczekiwa; poniej wyle ATZ. Oczekiwan
odpowiedzi jest OK. Po odebraniu OK, wysylany jest napis ATDT5551212,
wykrcajcy numer telefonu. Oczekiwanym napisem jest CONNECT. Jeli
odebrany zostanie napis CONNECT, to reszta skryptu jest wykonywana.
Jednak jeli modem spotka si z zajt lini, to wyle napis BUSY. Napis ten
bdzie odpowiadal sekwencji przerwania. Skrypt wtedy zakoczy dzialanie,
poniewa uzyskal rozkaz przerwania. Podobnie bdzie, gdy skrypt uzyska
napis NO CARRIER.
STRINGI RAPORTOWE
Napis raportowy jest bardzo podobny do napisu przerywania. Ronica
polega na tym, e napisy i wszystkie znaki do nastpujcego znaku
sterujcego, takiego jak CR, s wypisywane w pliku raportu.
Napisy raportu mog by uywane do izolowania ze napisu polczenia cigu
okrelajcego szybko transmisji i zwracania wartoci uytkownikowi.
Analiza logiki napisu raportowego wystpuje w polczeniu z innym
przetwarzaniem napisu, takim jak podgldanie napisu oczekiwanego. Uycie
tego samego napisu jako przerywajcy i raportowy, prawdopodobnie nie
jest zbyt uyteczne, jednak jest moliwe.
Napisy raportowe nie wplywaj na kod zakoczenia programu.
Napisy raportowe mog by podawane w skrypcie przy uyciu sekwencji
REPORT. Jest to zapisywane w skrypcie jak w nastpujcym przykladzie.
REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin:
account
Sekwencja ta nie bdzie oczekiwa niczego; a potem wyle napis
ATDT5551212, wykrcajcy numer telefonu. Oczekiwanym napisem jest
CONNECT. Jeli napis ten jest odebrany, wykonywana jest reszta skryptu.
Dodatkowo, program wydrukuje do oczekujcego pliku napis CONNECT plus
dodatkowo znaki, ktore za nim podaly, takie jak szybko polczenia.
TIMEOUT
Pocztkowa warto timeoutu to 45 sekund. Moe to by zmienione przy uyciu
parametru -t.
Aby zmieni warto timeoutu dla nastpnego z oczekiwanych napisow, mona uy
nastpujcego przykladu:
ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5
assowrd: hello2u2
Zmieni to timeout na 10 sekund podczas oczekiwania promptu login:.
Nastpnie timeout jest zmieniany na 5 sekund, podczas oczekiwania na
prompt password:.
Zmieniony timeout pozostaje efektywny a do nastpnej zmiany.
WYSY/LANIE EOT
Specjalny napis odpowiedzi, EOT, wskazuje, e program chat powinien
wysla znak EOT na drugi koniec. Normalnie jest to sekwencja End-of-
file. Nie przesylany jest po niej znak return.
Sekwencja EOT moe by zalczona do wysylanego napisu przy uyciu sekwencji
^D.
GENEROWANIE PRZERWANIA (BREAK)
Specjalny napis odpowiedzi, BREAK, spowoduje wyslanie warunku
przerwania. Sygnal ten jest specjalnym sygnalem. Normaln akcj u
odbierajcego go jest zmiana szybkoci transmisji. Moe by uywany do
przeskakiwania przez dostpne szybkoci transmisji, a bdzie mona odebra
prawidlowy prompt logina.
Sekwencja przerwania moe by zalczona do wysylanego napisu przy uyciu
sekwencji \K.
SEKWENCJE ESKEJPOWE
Napisy oczekiwania i odpowiedzi mog zawiera sekwencje eskejpowe.
Wszystkie sekwencje s legalne w napisie odpowiedzi. Wiele jest
legalnych w napisie oczekiwania. Te, ktore nie s legalne w sekwencji
oczekiwania, s zaznaczone.
'' Oczekuje lub wysyla napis zerowy. Jeli wysylasz napis zerowy, to
wysylany bdzie znak return. Sekwencja ta moe by zarowno par
apostrofow, jak i znakow cytowania.
\b reprezentuje znak backspace.
\c Powstrzymuje generowanie nowej linii na kocu napisu odpowiedzi.
Jest to jedyna metoda wysylania napisu bez koczcego go znaku
return. Musi by wysylana na kocu napisu. Na przyklad sekwencja
hello\c przele po prostu znaki h, e, l, l, o. (nie uywane w
napisie oczekiwania)
\d Zatrzymaj si na sekund. Program uyj sleep(1), ktory zatrzyma si
maksymalnie na sekund. (nie uywane w napisie oczekiwania)
\K Wstaw BREAK (nie uywane w napisie oczekiwania)
\n Przelij znak nowej linii.
\N Przelij znak null. Ta sama sekwencja moe by reprezentowana przez
\0. (nie uywane w napisie oczekiwania)
\p Pauzuj na cz sekundy. Oponienie wynosi 1/10 sekundy. (nie
uywane w sekwencji oczekiwania)
\q Zabro zapisywania napisu do pliku SYSLOG. Do logu w jego miejscu
wpisywany jest napis ???????. (nie uywane w sekwencji
oczekiwania)
\r Wylij lub oczekuj CR.
\s Reprezentuje znak spacji w napisie. Moe to by uywane, gdy nie
jest podanym cytowanie napisow zawierajcych spacje. Sekwencje
'HI TIM' i HI\sTIM s identyczne.
\t Wylij lub oczekuj znaku tabulacji.
\\ Wylij lub oczekuj znaku odwrotnego ukonika.
\ddd Przeksztal osemkowe cyfry (ddd) w pojedynczy znak ASCII i wylij
ten znak. (niekt'ore znaki nie s uywane w sekwencji oczekiwania)
^C Podmie sekwencj znakiem sterujcym (z Ctrl) reprezentowanym przez
C. Na przyklad znak DC1 (17) jest pokazywany jako ^Q.
(niekt'ore znaki nie s uywane w sekwencji oczekiwania)
KODY ZAKOCZENIA
Program chat koczy swoje dzialanie z nastpujcymi kodami wyjcia.
0 Normalne zakoczenie programu. Znaczy to, e skrypt zostal
wykonany bez bldow.
1 Jeden, lub wicej parametrow bylo nieprawidlowych, lub napis
oczekiwania byl zbyt duy dla buforow wewntrznych. Wskazuje to, e
program nie byl prawidlowo uruchomiony.
2 Pojawil si bld podczas uruchomiania programu. Moe to by
spowodowane bldem operacji odczytu lub zapisu, lub odebraniem
przez program sygnalu takiego, jak SIGINT.
3 Nastpilo zdarzenie timeoutu dla napisu oczekiwania, ktory nie
mial napisu "pod-wyslania". Moe to oznacza, e nie zaprogramowale
wlaciwie skryptu na ten warunek, lub e pojawilo si jakie
nieoczekiwane zdarzenie i oczekiwany napis nie mogl zosta
znaleziony.
4 Pojawil si pierwszy napis zaznaczony jako warunek ABORT.
5 Pojawil si drugi napis zaznaczony jako warunek ABORT.
6 Pojawil si trzeci napis zaznaczony jako warunek ABORT.
7 Pojawil si czwarty napis zaznaczony jako warunek ABORT.
... Inne kody wyjcia s rownie napisami zaznaczonymi jako ABORT.
Uywajc kodu wyjcia, moliwym jest okrelenie, ktore zdarzenie zakoczylo
skrypt. Jest moliwym okrelenie czy modem otrzymal np. napis "BUSY" czy
"NO DIALTONE". Podczas gdy pierwsze zdarzenie wymaga drugiej proby,
drugie w ten sposob moe mie mniejsze szanse.
ZOBACZ TAKE
Dodatkowe informacje o skryptach chat mona znale w dokumentacji UUCP.
uucico(1), uucp(1)
COPYRIGHT
Program chat jest w public domain. Nie jest to licencja GNU.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.