Portál AbcLinuxu, 21. prosince 2025 06:07
#!/usr/bin/expect -f
set host [lindex $argv 0]
spawn telnet "$host"
expect "login:"
send "root\r"
expect "word:"
send "root2root\r"
expect "commands."
send "ls /tmp/script/address\r"
expect {
"directory" {send "reboot\r";exp_continue}
"address" {send ".quit\r"}
}
Vsechno funguje az do okamziku, kdy se ma zacit vykonavat posledni prikaz expect. Tady ma skript zjistit jestli je soubor /tmp/script/address pritomen. A to podle vypisu. Pokud ano vypise se hlaska /tmp/script/address. Pokud ne, vypise se
ls: /tmp/script/address: No such file or directory. Potiz je v tom, ze posledni expect se nevykona. S nejvetsi pravdepodobnosti je spatne syntaxe, ale nejsem schopen nikde najit relevantni priklad, ktery by mi pomohl. Pro uplnost pouzivam Expect version 5.38.0. Dekuji za radu.
expect {
"directory" {send "reboot\r";exp_continue}
"address" {send ".quit\r"}
}
nema to byt taktoexpect {
"directory" {puts reboot\r;exp_continue}
"address" {puts quit\r}
}
teda nie send ale puts a asi bez uvodzoviek
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.