Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
problem with if structure

Posted by priyadharshini (priyadharshini), 18 June 2008
Hi,
      I wrote an Expect script to send commands to a host at specified port. I worked fine. now i included one simple if structure with its proper syntax. It gives
"missing close-brace" error.

the proc:

proc sendcommand {host port command } {
# global host_connection
 global telnet_id
 global RTR1ConsoleIp
 global RTR1ConsolePort
 global RTR2ConsoleIp
 global RTR2ConsolePort
 global RTR3ConsoleIp
 global RTR3ConsolePort
 global prompt

## This is the newly inserted if structure ==>
   if {$command == "end" } { set command "^Z" }
## <== ends here

   if {$telnet_id($host,$port) == ""} {
           puts "sendcommand:$host is not connected at port $port"
   } else {
            exp_send -i $telnet_id($host,$port) -- "$command\r\n"
            expect -i re $prompt
         }
    expect i -re {.*} {}
    expect -i [gettelnetid $host $port] timeout {puts "test:timeout on prompt"} -re $prompt {
    showshelloutput $expect_out(buffer)
    return $expect_out(buffer)
}
}

someone kindly point the mistake i made here,

Thank you

Posted by admin (Graham Ellis), 20 June 2008
Nothing obviously wrong, and the "if" you point at worked correctly when I cut and pasted it and ran it ...

Ahwt values are in your variables?   is ^Z really ^Z or just the way you have represented some sort of control code in your post, considering the question you are asking in another thread?

Posted by priyadharshini (priyadharshini), 20 June 2008
HI,

     Thanks for ur quick reply. 'm writitng scripts to send commands to routers of different vendors. Inside routers I used "end" command to reach the global mode from any mode. Some router types are not accepting "end" command. But all are accepting  "^z".  So 'm trying to send  "^z" instead of "end"

Thank you,



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho