Proposiciones de Flujo de Control en Linux
Proposicion![]() |
Descripción |
---|---|
break |
break [n] Sale de un bucle for, while, until, o select. Si se especifica n, sale de n niveles. n debe ser mayor o igual a 1. Si n es mayor que el número de bucles, se sale de todos. El valor devuelto es 0 a menos que el shell no esté ejecutando un bucle cuando se ejecute break. |
case |
case palabra in [ patrón1) ... lista1;; patrón2)... lista2;; ... ] ... esac Compara el valor de la sentencia palabra con los distintos valores de patrones, cuando se encuentre una concordancia, se ejecuta la lista correspondiente. Tras la primera concordancia, no se intentan más. La pareja de puntos y comas (;;) sirve para delimitar una lista. El estado de salida es cero si no concuerda ningún patrón. De otro modo, es el estado de salida de la última orden ejecutada en lista. Es recomendable remplazar la sentencia if por case cuando la sentencia if tiene más de tres niveles de anidación echo -n "Escriba una opción:" read opcion case "$opcion" in d|D) date ;; l|L) ls ;; w|W) who;; q|Q) exit 0 ;; *) echo "opción invalida" ; exit 1 ;; esac |
continue |
continue [n] Transfiere el control al siguiente, lo cual da lugar a que se evalué de nuevo la condición, es decir reanuda la siguiente iteración del bucle for, while, until, o select donde estamos. Si se especifica n, la reanudación es en el n-simo bucle que nos rodea. n debe ser mayor o igual a 1. Si n es mayor que el número de bucles que nos rodean, se reanuda el bucle más exterior (el de ‘‘más alto nivel’’). El valor de retorno es 0 a menos que el shell no esté ejecutando un bucle cuando se ejecute continue. |
for |
for variable [ in lista-elementos; ] do lista ; done Los elementos de lista-elementos se van asignando a variable en cada iteración, y lista se ejecuta cada vez. El proceso permite ejecutar las órdenes especificadas en lista tantas veces como palabras haya en lista-elementos. Sin la parte opcional de lista-elementos se esperara que se pasen desde la línea de órdenes (como argumentos del script). Si lista-elementos resulta en una lista vacía, no se ejecuta ninguna orden y el estado de salida es 0. La sentencia for es la única sentencia que puede ejecutarse directamente desde el terminal (en lugar de ponerla en un archivo para ejecución posterior). for i in * do echo $i done también se puede poner como: for i in *; do echo $i; done Obtiene los nombres do los archivos uno por línea. |
if |
if lista; then lista; [ elif lista; then lista; ] ... [ else lista; ] fi La lista if se ejecuta. Si su estado de salida es cero, se ejecuta la lista then. De otro modo, se ejecuta por turno cada lista elif, y si su estado de salida es cero, se ejecuta la lista then correspondiente y la orden se completa. Si no, se ejecuta la lista else si está presente. El estado de salida es el de la última orden ejecutada, o cero si ninguna condición fue verdadera. if lista then lista [ elif lista
then lista ] ... [ else lista ] fi |
until |
Until expresion; do lista-ordenes; done Se evalúa expresion, si el resultado de esta evaluación, devuelve un estado de salida uno (false), entonces se ejecutan las órdenes especificadas en lista-ordenes y se repite hasta que al evaluar expresion se obtiene el valor cero (true). |
while |
while expresion; do lista-ordenes; done Se evalúa expresion, si el resultado de esta evaluación, devuelve un estado de salida cero (true), entonces se ejecutan las órdenes especificadas en lista-ordenes y se repite hasta que al evaluar expresion se obtiene el valor uno (false). |