lunes, 4 de febrero de 2008

Programación Shell (parte 1)

Asran [asran@isppr.rimed.cu]

La programación de segundo plano no es más que un estilo de programación usando el shell de un sistema operativo para el procesamiento sin la supervisión del usuario.

En los sistemas MS (Windows y DOS) tenemos los ficheros por lotes o batch. Estos fichero tienen como extensión -->(.bat). Veremos algo bien interesante en este tema y es que alguien con conocimientos básicos de líneas de comandos en cualquier sistema y un mínimo de programacion segundo plano podrá hacer maravillas de una maquina.
Pero bueno aquí listo algunos elementos para convencer.

Antes es bueno destacar las ventajas y desventajas.

Ventajas:

1- Permite compartir mejor los recursos de un ordenador entre muchos usuarios, al no competir por éstos de forma inmediata.
2- Realiza el trabajo en el momento en el que los recursos del ordenador están menos ocupados, dando prioridad a tareas interactivas.
3-Evita desaprovechar los recursos del ordenador sin necesidad de interacción y supervisión humanas continuas.
4-En ordenadores caros o supercomputadores, ayuda a amortizar el coste manteniendo altos índices de utilización.

Pero bueno no todo es color de rosa aquí vienen las contra.

Desventajas:

1-El principal inconveniente de la ejecución por lotes frente a la ejecución interactiva es que hay que conocer y planificar cuidadosamente la tarea a realizar.
2-Al carecer de supervisión por parte del usuario, cualquier tipo de error puede producir resultados inútiles o, simplemente, inexistentes

Entrando en materia

Bien en los sistemas MS veremos que además de los .bat como ya sabemos a partir de Windows 2000m también se acepta la extensión .cmd.

Ahora, como se crea un fichero por lotes?

Veras que es muy fácil. Lo que necesitas es un editor de texto y un poco de imaginación. Te abstraes y piensas en que orden harías las cosas si las estuvieras tratando desde la línea de comandos. Luego de escribirlas guardas tu fichero como .bat o .cmd preferiblemente la primera opción para darle universalidad a lo que escribes y no tenga limitación de versión del SO. Y pum ya esta!!

Consideraciones:
El sistema toma por defecto el directorio del Desktop. O el que tengas predeterminado para el inicio de la línea de comandos.
Ejemplo: Si quisieras tener una vista en árbol del volumen C:\ pondrías lo siguiente

cd..
cd..
tree
pause

Para facilitar el estudio de esta técnica aquí tienes una lista de los comando mas usados en la programacion por lotes.

Comando                 Descripción
@echo <texto>        Este comando es similar al printf("texto") de C o al Writeln('Texto') de Pascal en pocas palabras muestra una cadena de caracteres.
Ejemplo:
@echo Hola mundo!

@echo off             Este desactiva la terminal TTY del micro en otras palabras bloquea la salida de caracteres por pantalla mientras se ejecuta la aplicación.

call path            Ofrece la interesante tarea de ejecutar, si como lo estas leyendo con este comando puedes ejecutar el fichero especificado en el parámetro path.

Más sobre CALL: Puede levantar cualquier aplicación válida y ficheros de cualquier extensión reconocida en el sistema.

Nota: Los sistemas MS han heredado la cualidad de no reconocer nombres de directorios o ficheros que excedan los 8 caracteres. Por lo que se ajustan estos nombres a los 6 primero caracteres validos seguidos por el caracter ~ [Alt + 126] y 1

Ejemplo:
C:\Documents and Settings\docencia\Desktop
quedaría de la forma
C:\Docume~1\docencia\Desktop

Pause                  Obvio genera una pausa a la ejecución.

Como ves batch es igual un lenguaje de programacion y no menos importante. Como tal tiene estructuras de control como las condicionales IF, IF NOT, la iterativa FOR y de salto GOTO. También pueden manipularse variables. Pero bueno esto lo prometo en un próximo encuentro a fin de provocar Overflow.

Bueno no más … hasta la segunda parte.



Artículos relacionados


No hay comentarios: