Generate terminal escape sequences from Tcl

One of my readers (who unfortunately prefered to stay anonymous, so I cannot give credit where it’s due) figured out how to output escape sequences from IOS Tclsh: you have to execute terminal international command first.

We can use that functionality to do all sorts of interesting things, like clearing the screen and displaying red header text from a Tcl script running on Cisco IOS:

exec terminal international;
puts "\033\[2J\033\[H\033\[1;31mHeader text\033\[m"

Obviously, you could easily use this functionality to build a nice full-screen menu system.

Notes

  • To output the ESC character, use the \033 code within the double quotes;
  • To output the left angle bracket, you have to use the \[ sequences, otherwise Tcl interprets the bracket as start of an expression;
  • The ANSI escape sequences (recognized by most terminal emulators) are documented on Wikipedia;

3 comments:

  1. Hi,

    I have just started tracking your blog, I am no IOS wizard. I would like to ask you what exactly one gets from using tclsh ? Is it like having a UNIX shell inside IOS i.e. such as tcsh ?

    Can you nutshell summarise tclsh please.

    -aW
  2. alex, tcl is a scripting language.

    tclsh is an environment in wich you can execute tcl scripts in.

    Its not a shell.
  3. "alias exec" on steroids, but running in its own environment? This is how I interpreted this!
Add comment
Sidebar