A command is evaluated in two steps. First, the Tcl interpreter breaks the command into words and performs substitutions as described below. These substitutions are performed in the same way for all commands. The first word is used to locate a command procedure to carry out the command, then all of the words of the command are passed to the command procedure. The command procedure is free to interpret each of its words in any way it likes, such as an integer, variable name, list, or Tcl script.
Different commands interpret their words differently.
Command substitution, variable substitution, and backslash substitution are performed on the characters between the quotes as described below. The double- quotes are not retained as part of the word. The word will consist of exactly the characters between the outer braces, not including the braces themselves. To do this it invokes the Tcl interpreter recursively to process the characters following the open bracket as a Tcl script. There may be any number of command substitutions in a single word.