Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

lunes, 14 de abril de 2014

Hacer Front-End a comandos de Gnu/linux: Shell y Exec

Una de las cosas más potentes de gambas3 es que podemos usar facilmente los comandos  del sistemas. Incluso podemos crear interfaces gráficas para estos comandos.

Para ello existen dos comandos: Shell y Exec

El Shell:



[ Process = ] SHELL Command [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } } ] [ AS Name ]
SHELL Command TO Variable


Pasa el comando (una cadena de caracteres)  a la shell del sistema( /bin/sh)

Con "To" enviamos la salida estandar a la variable indicada. Si se produce una salida de error, la tenemos que redireccionar a la salida estandar:

Shell "command 2>&1" To Result


El Exec:


[ Proceso = ] EXEC Comando [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } }
EXEC Comando TO Variable


Usa la función exec() del sistema.
Comando es un array de cadenas con los distintos comandos y  parámetros.

EXEC ["/bin/ls", "-l", "*.o", ">/tmp/list"]


Tanto Shell como Exec, podemos asignarles procesos, con lo cual podemos controlar varios aspectos: si ha terminado, si esta produciendo alguna salida (For Read) , o incluso lo podemos "matar".


Nota: " &"
Si añadimos a la linea de comandos un espacio y el simbolo &, el proceso será lanzado de forma independiente, con lo cual se consigue que si se cierra el programa principal, no tenga que cerrarse la ejecución del programa secundario.
Ejemplo:
EXEC ["/bin/ls", "-l", "*.o", ">/tmp/list"," &"]

Se ejecuta el comando ls, independientemente del programa de gambas.
Fuente: http://www.gambas-es.org/viewtopic.php?f=4&t=3583&highlight=unix


Ejemplo: Buscar Archivos
Hacer front-end del comando Find , el cual le definimos la ruta de búsqueda y el nombre (que admite caracteres comodines) , nos dé el resultado en un TextArea.



Código fuente:
-

-

Captura de Pantalla del programa:



Enlace de Descarga: archivo alojado en box.com


Para más información:
http://gambaswiki.org/wiki/lang/shell
http://gambaswiki.org/wiki/lang/exec
http://gambaswiki.org/wiki/doc/shellexec (diferencias entre el uso de Shell y Exec)

http://gambaswiki.org/wiki/comp/gb/process
http://gambaswiki.org/wiki/lang/lof


No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad