According to the [Dodekalogue], a '''script''' is a [everything is a string%|%string] containing commands. More generally, a script is a set of statements written in the [scripting language%|%language] of an [interpreter] such as [Tcl]. ** See Also ** [Many ways to eval]: enumerates the ways to evaluate a string as a script [cmdSplit%|%scriptSplit]: split a script into its constituent commands [parsetcl]: [scripted list]: use a script as a list ** Description ** In [Tcl], a script is a collection of [command%|%commands] separated by a semicolon or newline. A script can be provided to Tcl in various ways: Invocation of an interpreter such as [tclsh]: The name of the file can be passed as an argument. `[source]`: the file name can be passed as an argument. `[eval]`: arguments are concatenated and evaluated as a script. `[script substitution]`: A script is embedded directly in another script. A script often provides a [library] for use by other scripts. Tcl's sparse syntax makes it particularly convenient to embed code written in another language directly into a Tcl script. [SQL], [Perl], [ksh], [awk], or even [C] code can then be handed off to to some other interpreter for evaluation. [SQL] is probably the most well-known example of this. When dynamically generating scripts for another language, it is necessary to be aware of possible [Injection Attack%|%injection attacks]. <> Glossary