Portál AbcLinuxu, 13. května 2025 19:42
#!/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 takto
expect { "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.