O TCL pode facilmente incluir e executar comandos de algum outro arquivo; o comando source(n) , por exemplo, permite dizer
#!/usr/bin/env expect
package require Tcl 8.5
set IP [lindex $argv 0]
set include_file [lindex $argv 1]
# ... begin commands before here
catch {source $include_file} result options
if {[dict get $options -code] != 0} {
puts stderr "could not source $include_file: $result"
exit 1
}
# end commands after here ...
com isso salvo como runner , um pode ter um arquivo de inclusão
$ cat runthese
puts a
puts b
puts c
$ expect runner 127.0.0.1 runthese
a
b
c
$
embora, é claro, o runthese ou qualquer arquivo a ser incluído possa ter send e expect , conforme necessário.