Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Pomoc s expect scriptem  (Přečteno 2283 krát)

tomaskCZ

  • Aktivní člen
  • *
  • Příspěvků: 373
Pomoc s expect scriptem
« kdy: 15 Července 2008, 11:34:05 »
Zkousim si dle navodu
'http://oreilly.com/catalog/expect/chapter/ch03.html#pgfId-9292'

kapitola 'Anchoring' zachytavat presny vzorec, tzn. jako v prikladu ^hi$, ale ani tento ukazkovy postup se mi nedari.

Tzn. ^(vyraz musi zacinat)  nebo  $(vyraz musi koncit) mi expect nevyhodnoti spravne, zkousel jsem ruzne kombinace jako
expect "^hi\n"
expect "^hi$\n"
expect "\^hi\$\n"
apod. asi nevim, jak tam ten regularni vyraz spravne napsat s tim enterem \n.

Jak to tam dosadit, aby zachytil pouze presny vyraz hi bez niceho, popr. napriklad zachytil pouze jednu zavorku > a ne  dve >> ?



nettezzaumana

  • Host
Re: Pomoc s expect scriptem
« Odpověď #1 kdy: 15 Července 2008, 14:11:22 »
..

expect "^hi\n"
expect "^hi$\n"  // spatne .. radku vzdy vypada pri pouziti teto direktivy takto, '^..$', ne takto : '^..$.', protoze \n je taky znak
expect "\^hi\$\n" // to same

zkus misto '\n' dat plny konec radku (AFAIK), coz je '\r\n'

Jak to tam dosadit, aby zachytil pouze presny vyraz hi bez niceho, popr. napriklad zachytil pouze jednu zavorku > a ne  dve >> ? // nerozumim otazce, uka priklad

ad.1) ja osobne expect nepouzivam .. stejneho efektu lze docilit aka ::

nettezzaumana@kokina:~> python << EOF
> print 1 + 2
> quit()
> EOF
3

« Poslední změna: 15 Července 2008, 14:17:00 od nettezzaumana »

tomaskCZ

  • Aktivní člen
  • *
  • Příspěvků: 373
Re: Pomoc s expect scriptem
« Odpověď #2 kdy: 15 Července 2008, 16:06:05 »
aha, dik, moje blbost ten $ mel jit za to /n,pak ten ukazkovy priklad funguje, jak ma.

Jde mi presne o komunikaci se starsim zarizenim pres konzoli, tzn. posilam mu prikazy, cekam na zname stringy a podle toho mu poslu dalsi prikaz na prompt, ktery je v tomto pripade >.
Problem je, ze splneni prikazu reportuje neco jako << prikaz splnen >> a az potom prejde do promptu >.
Expect zachyti samozrejme jako prvni >>, spokoji se s tim a prikaz posle predcasne, kdy jeste neni dostupny prompt. Mam to reseno, ze na >> posle jen tak enter a pak pokracuje klasicky uz s promptem, ale systemove by mi prislo cistci, kdyby umel rozeznat >> od >, coz se mi stale nedari aplikovat.
 V tomto
expect \"\^>\$\" nebo \"^>$\" to proste nevidi(zustane viset), zkousel jsem precist, co tam vlastne vidi s promennou
send $expect_out(buffer), to mi vrati pouze 'BUFFER'.

Shrnuti, ten ucebnicovi prikaz funguje i s promnenyma, v realu pri komunikaci se zarizenim to drhne, byt si umim poradit urcitym workaroundem, je jasny, pokud nedelas v expectu, ze to do detailu vedet nebudes :)

 

Provoz zaštiťuje spolek OpenAlt.