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 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
problem with if structure

Posted by priyadharshini (priyadharshini), 18 June 2008
      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

     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 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., 2022: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: • WEB: • SKYPE: wellho