The main script is the primary script that is executed by the interpreter, e.g. tclsh or wish.
One common technique is to have a script run a self test if it detects that it is the main script. The detection routine usually looks something like this:
if {[info exists argv0] && $argv0 eq [info script]} { #do stuff }
Examples of the following, more complicated test can be found:
#unneeded complexity ? if {[info exists argv0] && [file tail [info script]] eq [file tail $argv0]} { #do stuff }
but I (PYK) don't see a scenario in which is needed, as info script always has the same value as $argv0 in all the cases I tested.