Jump to content

Problēma ar expect skriptu


Baigais Janka
 Share

Recommended Posts

EDIT2: OK, prambļems atrisināts. match_max ieliku lielāku, tobiš buferi. 2k simboli tik pēc gosta ir. Bet, jebkurā gadījumā, nav skaidrs - kāda vella pēc tikai dažreiz viņš nokoda to sākumu, nevis vienmēr. Direktorijs, loģiski, visu laiku tika lasīts viens un tas pats.

 

//////////

 

Vajag vienkāršu lietu - nolasīt no ftp failu listi (uz taimoutu un eof ir vienkārši kļūdas paziņojums un exit):

send "ls\n"
expect {
"\r\nftp> " { parray expect_out }
timeout { ExitExpectTimeout }
eof { catch wait result; ExitExpectEof [lindex $result 3] }
}

Kurbulējot to skriptu - vienreiz OK, ottreiz OK, bet tad uzreizi tas saturs iekš expect_out(buffer) ir bez sākuma, tobiš, sākas, tā sacīt, pusvārdā un līdz beigām. It kā pēc send viņš kādu mirkli būtu ignorējis ienākošos datus un tad tik sācis šķūrēt buferī. Uz ekrāna redzams, ka no ftp servera dati ir OK atnākušiю No kādām 10 reizēm, kādas trīs šitāda šļura notiekās. Tur kauču kas varētu būt darāms - nezi, ar buferiem, flušošanu vai vēl nezi ko?

 

EDIT:

Njā, murgs... Domāju, varbūt iepriekš ko daru ne tā, un tas ietekmē, bet figu - galīgi "tukšs" skripts tāpat uzvedās :(

#!/usr/bin/env expect

set ftpServer "10.1.1.1"
set ftpUser "ftpuser"
set ftpPassword "ftppassword"
set ftpDir "tempdir"
set ftpPrompt "\r\nftp> "

spawn ftp $ftpServer
expect {
"Name " {
 send "$ftpUser\n"
 exp_continue
}
"assword:" {
 send "$ftpPassword\n"
exp_continue
}
"$ftpPrompt" {}
}
send "cd \"$ftpDir\"\n"
expect "$ftpPrompt"
send "ls\n"
expect {
"$ftpPrompt" {
parray expect_out
}
}
send "quit\n"

Labots - Baigais Janka
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...