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.