
Para ejecutar un comando de UNIX, o externo al tcl se utiliza la instrucción exec:
exec comando
ejemplo:
El shell del Tcl cualquier comando desconocido es tomado como si fuera un comando o programa de UNIX, por ejemplo es posible escribir la instrucción ls directamente en la linea de comandos en lugar de exec ls para revisar los archivos existentes en el directorio actual.
Para abrir un archivo se utiliza el comando open, de la siguiente forma:
open archivo modo permisos
Donde "archivo" es el nombre, incluyendo la ruta, del archivo que se abrirá y "modo" es alguna de las formas que existen para abrir los archivos y "permisos" son los permisos de lectura y escritura que se le darán al archivo. A continuación se listan los modos de apertura:
Modos de apertura de archivos:
Normalmente se asocia una variable al archivo al momento que se abre para trabajar con éste, así es posible guardar y leer información de manera sencilla.
Por ejemplo, si queremos crear un archivo llamado "nuevo.txt", primero asociamos el archivo a una variable y lo abrimos utilizando el modo "w":
set arch1 [open nuevo.txt w 0666]
A continuación podemos agregar lineas de texto utilizando para ello el comando puts, pero en lugar de hacer la escritura hacia stdout se hará hacia el archivo:
puts $arch1 "Nueva linea"
Si cerramos el archivo obtendremos un archivo que incluye una linea. Para cerrar un archivo se utiliza el comando close:
close $arch1
Ejemplo:
Este programa pide lineas de texto hasta que se escriba en una linea la palabra fin, entonces cierra el archivo y termina la ejecución del programa:
#!/usr/local/bin/tclsh7.4
puts stdout [exec finger]
Si no se especifica la salida a la pantalla con el comando puts stdout no se logrará apreciar la ejecución del comando, aún cuando si fué ejecutado. Manejo de archivos.
Para crear, leer o escribir en un archivo en tcl es necesario abrirlo para trabajar con el y al final cerrarlo para evitar la pérdida de información.
r Abrir para lectura. Debe existir el archivo
r+ Abrir para lectura y escritura. El archivo debe existir
w Abrir para escritura. Si no existe se crea, si existe se elimina su contenido
w+ Abrir para escritura y lectura. Se borra su contenido o se crea.
a Abrir para escritura. El archivo debe existir. La información se anexa al archivo
a+ Abrir para escritura y lectura. El archivo debe existir. La información se anexa al archivo
#!/usr/local/bin/tclsh7.4
set archivo [open arch.dat w 0666]
set cadena ""
while {$cadena != "fin"} {
set cadena [gets stdin]
if {$cadena != "fin"} {
puts $archivo $cadena
}
}
close $archivo