ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estructuras De Control En Shell


Enviado por   •  16 de Septiembre de 2013  •  2.814 Palabras (12 Páginas)  •  470 Visitas

Página 1 de 12

Introducción

Este trabajo sirve como una introducción a la programación del procesador de órdenes (shell) para poder desarrollar programas básicos. Un fichero de texto que se va a procesar por el shell se conoce normalmente por shell script. Es habitual que los shell scripts tengan la extensión .sh. No existe un único shell. Los más conocidos son el Bourne shell, el C-shell, el Bash (Bourne again shell) entre otros. El término shell también hace referencia a un programa particular, tal como el Bourne shell, sh. El Bourne shell fue el shell usado en las primeras versiones de Unix y se convirtió en un estándar; todos los sistemas similares a Unix tienen al menos un shell compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la jerarquía de archivos de Unix en /bin/sh. En algunos sistemas, tal como BSD, /bin/sh es un Bourne shell o un equivalente, pero en otros sistemas como muchas distribuciones de Linux, /bin/sh es un enlace simbólico a un Shell compatible con más características como Bash. POSIX especifica su shell estándar como un subconjunto estricto del Korn shell.

Cada uno de ellos tiene características particulares, pero todos contienen básicamente lo mismo: variables, estructuras de control. En un shell script se pueden ejecutar varias órdenes destinadas al shell ejecutando un solo fichero, sin necesidad de volver a reescribir todas las órdenes cada vez que se quiera realizar la misma tarea. Principios de los Shell ¿QuE es el Shell?

Operación de los shell y conceptos básicos de sintaxis

El shell es un programa que nos permite interactuar con el sistema operativo. La “línea de comandos” es la entrada del usuario para el shell. El shell examina la línea de comandos, verifica que lo que se ha escrito es correcto, determina si se ha digitado el nombre de un programa (un programa binario o compilado), y de ser así envia dicho programa al núcleo (kernel) para su ejecución.

1

Estructuras de control del flujo

Ahora es cuando vamos a empezar a ser capaces de programar algo en shell. Las estructuras de control de flujo del programa que tenemos disponibles cuando programamos en shell son el if, case, while, for y until. Además, veremos algunas órdenes especiales y algunas construcciones un poco más raras, que sirven también para controlar el curso de los acontecimientos.

If

Las palabras clave en conexión con esta sentencia son if misma, then y fi que significan:

if: orden condición.

then: grupo de órdenes a ejecutor si la orden-condición tiene éxito.

fi: indica el fin de la sentencia.

Cuando se va a hacer un programa es habitual revisar las ordenes comprendidas entre then y fi. Cuando una orden se ejecuta sin errores se dice que devuelve un valor cierto

Para que una secuencia de comandos declarados se ejecute, se tendrán que comprobar primero sus condiciones de variables. La mayoría de los lenguajes de programación y scripting tienen algún tipo de expresión if / else. A diferencia de la mayoría de los otras sentencias, los espacios son muy importantes cuando se utiliza una sentencia if. El comando if de UNIX ejecuta una serie de comandos dependiendo si una cierta condición se cumple o no. Este comando se usa para comparar y tomar decisiones en función de una condición, fi, que es if al revés, indica donde termina el if. En la parte reservada para la condición de la sentencia if, aparece una lista de órdenes separados por ";". Cada uno de estos mandatos es ejecutado en el orden en el que aparecen.

2

La condición para evaluar por if tomará el valor de salida del último mandato ejecutado. Si la última orden ha terminado correctamente, sin condición de error, se ejecutará la lista de órdenes que hay tras then. Si esta orden ha fallado debido a un error, la ejecución continúa tras el if. Sintaxis.

Se puede usar para comparar dos números o cadenas.

Sintaxis comando if:

If [condición ]

then

comandos1 (si condición cierta);

else comandos2(si condición falsa); fi

También tiene un formato "corto" sin el else (acción en caso de que al aplicar la condición el resultado sea "falso"). El comando siempre comienza con la expresión if y acaba con la expresión fi

Sintaxis del comando if sin el else:

If [condición ]

Then

Comandos1 (si condición cierta);

fi

3

Ejemplo 1.

Este es un script que le pedirá a un usuario una contraseña antes de permitir que continuara. #!/bin/sh # This is some secure program that uses security. VALID_PASSWORD="secret" #this is our password. echo "Please enter the password:" read PASSWORD if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then echo "You have access!" else echo "ACCESS DENIED!" fi

Ejemplo 2. Donde aparece si un empleado debe de trabajar un dia determinado dia.

Ejemplo 3

# trabajo.sh: dice si se trabaja según el día # invocar con parámetros: # domingo, feriado, u otro nombre cualquiera # if [ $1 = "domingo" ] then echo "no se trabaja" elif [ $1 = "feriado" ] then echo "en algunos se trabaja" else echo "se trabaja" fi

4

Ejemplo 3.

En el próximo ejemplo muestra cómo se puede restringir un fichero Shell de modo que solo pueda ejecutarlo un usuario particular con independencia de que otras personas tengan permiso de ejecución sobre él.

While

While facilita otro método para formar bucles en los que se ejecutan varias órdenes. La diferencia entre while y for es que mientras for se usa con una lista de objetos sobre los que deben efectuarse ciertas acciones, while realiza ciertas acciones en tanto una condición específica se mantenga.

Sus elementos son:

while: orden-condición

do: grupo de órdenes a ejecutar mientas la orden-condición tenga éxito

done

if test SLOGNAME != maryann

then echo “esta orden está restringida a maryann”

exit

else ...

if

5

La ejecución de la construcción while es:

 Se evalúa la condición

 Si el código devuelto por la condición es cero (verdadero) se ejecuta la orden u órdenes y se vuelve a iterar.

 Si el código de retorno de la condición es falso, se salta a la primera orden que haya después de la palabra reservada done.

Sintaxis:

while condición

do

órdenes

done

Si se desea una situación donde se tenga un bucle dentro de otro break puede ser útil.

While testl

do <algunas órdenes>

while test 1

do <algunas ordenes>

...

Descargar como (para miembros actualizados) txt (18 Kb)
Leer 11 páginas más »
Disponible sólo en Clubensayos.com