Since Tcl is an interpreted language, to run a Tcl program (also called a script), you normally pass the script file to the Tcl interpreter, wish, for example:
You can also use wish in interactive mode and type in commands at the command line.
There's another standard Tcl interpreter, tclsh, which only understands the Tcl language. Tclsh does not have any of the Tk user interface commands, so you cannot create graphical programs in tclsh.
Some Tcl freeware applications extend the Tcl language by adding new commands written as C functions. If such is the case, you need to compile the applicati on instead of just passing its Tcl code to the wish interpreter. This application program, from a Tcl perspective, is really a new version of the wish interpret er, which the new C commands linked in. Of course, the application program may be a lot more than merely a Tcl interpreter. (Note: you can also use Tcl's auto-loading capability on systems that support it.)
Tcl has a simple structure. Each line starts out with a command, such as button and a number of arguments. Each command is implemented as if it was a C function. This function is responsible for handling all the arguments.
As a very standard example, the following is the Hello World program in Tcl/Tk:
# This is a comment button .b -text "Hello World" -command exit pack .b
In this case you have to type the commands interactively to tclsh or wish.
You can also place command into script files and invoke these just like shell scripts. To do this for the previous example, rewrite the Hello World program as follows:
#! /usr/local/bin wish -f button .b -text "Hello World" -command exit pack .b
Put the text inside a file called Hello and make sure that wish is installed in /usr/local/bin (otherwise you will have to change opportunely the path).
Make the file Hello executable issuing the command
chmod 775 Hello
and run it inside X.
You will see a button labelled Hello World inside a window: clicking it will close (exit) the window.