Tengo dos scripts tcl. Y quiero ejecutar un segundo script cuando termine por primera vez. ¿Cómo puedo hacerlo?¿Cómo ejecutar el script tcl en otro script tcl?
Respuesta
Depende de lo que realmente quiere decir.
Una forma es escribir un tercer guión ("maestro"), que haría
source /the/path/to/the/first.tcl
source /the/path/to/the/second.tcl
Otra forma es simplemente añadir la segunda llamada a source
del ejemplo anterior a la parte inferior de la primera secuencia de comandos.
Enmienda de la primera aproximación: si las secuencias de comandos para ser ejecutados se encuentran en el mismo directorio que el script superior, una forma idiomática a source
ellos es
set where [file dirname [info script]]
source [file join $where first.tcl]
source [file join $where second.tcl]
De esta manera abastecimiento funcionará sin importar el el directorio del proceso actual es y donde está ubicado el directorio del proyecto.
Solo tiene que utilizar el código fuente para ejecutar el segundo script.
source "/tmp/whatever.tcl"
Si bien esto es generalmente una respuesta correcta, lástima pues la pregunta no fue formulada precicely hay un montón de maneras para hacer el objetivo de ejecutar código TCL TCL desde dentro. Quiero entrar en esto en detalle, porque la comprensión de la ejecución de código es un punto importante en la comprensión de tcl itselve.
Hay fuente
El comando de origen no debe confundir con la ejecución de secuencias de comandos de una manera clásica, lo que creo que el hilo de arranque ha pedido.
El comando de origen es como el comando "incluir" en c/perl/php. Los lenguajes como java o python solo tienen mecanismos de "importación".
La diferencia es que esos idiomas crean una base de datos interna de paquetes disponibles, que están vinculados a los correspondientes archivos de código fuente/binario/bytecode. Al escribir una declaración de importación, se cargan los códigos fuente o de bytes vinculados o binarios. Esto permite una administración de dependencias más profunda sin escribir código adicional. En tcl esto se puede lograr con espacios de nombres y el paquete requiere comando. Ejemplo:
Suponga que tiene esta source.tcl:
proc foo {bar} {puts "baz"}
set BAM "BOO"
Ahora, usted tiene la secuencia de comandos "maestro" como se llame. Yo lo llamo "principal". Tiene el contenido:
set BAM {my important data}
source source.tcl
#also the function foo can now be used, becouse source reads the whole script
foo {wuz}
set BAM
#will output "BOO"
El comando exec
Si se puede vivir con una sobrecarga adicional de iniciar una nueva instancia toda intérprete que también podría hacer:
set BAM {my important data}
exec tclsh source.tcl
#The variable BAM will not be modified. You can not use the function foo.
El comando eval
Eval puede evaluar una cadena o una lista (en tcl todo es una cadena) como si fuera un código programado. Tendría que cargar el archivo fuente completo en una cadena. Y luego use eval, para evaluar el código dentro de un alcance separado, para no sobrescribir cosas en su archivo fuente principal.
set fp [open "somefile" r]
set code_string [read $fp]
close $fp
eval $code_string
- 1. ¿Cómo llamar comandos bash desde tcl script?
- 2. Tcl/Tk ejemplos?
- 3. Llamar a un script bash desde un script tcl y regresar y salir del estado
- 4. Tcl Funciones anónimas
- 5. ¿Necesitamos "desarmar" variables en TCL?
- 6. cómo funciona el comando upvar en TCL?
- 7. Ejecutar un script PHP desde otro script PHP
- 8. TCL: buscar recursivamente subdirectorios para obtener todos los archivos .tcl
- 9. cómo ejecutar secuencias de comandos de Python con el comando tcl exec
- 10. Capture "Tcl Interpreter Error"
- 11. cadena TCL concat
- 12. Ejecutar un script de PowerShell desde otro
- 13. Cómo hacer que el script php ejecute otro script php
- 14. cómo funciona $ expect_out en TCL/EXPECT?
- 15. ¿Cómo inicializar una matriz en Tcl?
- 16. Cómo poner bloquear los comentarios en TCL
- 17. TCL espera la expresión regular
- 18. Cómo conciso concatenar cadenas en Tcl?
- 19. Script Bash para ejecutar el script php
- 20. ¿Cómo elimino un procedimiento de Tcl?
- 21. tubo en otro script
- 22. Adobe InDesign .jsx script ejecutar .jsx script
- 23. Características ocultas de TCL/TK
- 24. cómo usar sed de un archivo TCL
- 25. ¿Ejecuta el script bash desde otro script sin esperar a que el script termine de ejecutarse?
- 26. cómo ejecutar un archivo de script python con un argumento desde otro archivo de script python
- 27. aritmética de números complejos en Tcl?
- 28. ¿Cómo ejecutar el script de python instalado?
- 29. ¿Cómo llamar a un script SQL desde otro script SQL?
- 30. Python tcl no está instalado correctamente