El Manual de BASH Scripting Básico para Principiantes/El clásico (For)
De Wikilibros, la colección de libros de texto de contenido libre.
Contenido |
[editar] Sentencia for-if
El ciclo for es ampliamente usada en programación en la mayoría de los lenguajes, en el cual por cada elemento en determinada variable se repetirán determinadas acciones, esto hasta que lo haya hecho con todos los elementos indicados, entonces el ciclo habrá terminado y solo entonces.
[editar] Ejemplo de uso
for a in $x do if [ a = algo ] then echo "Algo... es igual a algo" fi done
[editar] Uso practico
Para poner un ejemplo fácil, analicemos el siguiente algoritmo:
Tengo 10 manzanas. Por cada manzana que tenga, la tomaré y verificaré que no tenga un gusano: Si lo tiene, tiraré la manzana, si no, la guardaré en el refrigerador.
Imaginemos que mis 10 manzanas son los 10 archivos en determinada carpeta, llamados respectivamente desde el numero 1 hasta el 10 (sus nombres serían entonces 1, 2, 3, 4... y así hasta llegar al 10 respectivamente, esto va para cada archivo).
Imaginemos después que si el archivo (la manzana) contiene un gusano (la variable $gusano), entonces la variable ya mencionada tendrá un valor igual a 1, y si no, tendrá un valor igual a 0.
[editar] Uso practico en BASH
#!/bin/bash # Manzana Parser: El script importa la variable guardada en cada archivo # y determina si "tiene o no gusano" ## Verificando que los parámetros sean válidos if [ $# -ne 1 ] then echo "Favor de solo especificar un directorio" exit 1; elif [ ! -d $1 ] then echo "El archivo $1 especificado no es un directorio, abortando." exit 1; fi ##Cambiando al directorio especificado lastdir=(echo $PWD) cd $1 ## Inicializando aplicación contador=0 for archivo in `ls $1` do if [ -f $archivo ] then let contador=contador+1 fi for manzana in $contador do if [ -f $archivo ] then source $archivo if [ $gusano = 0 ] then echo "La manzana $archivo no tiene gusano, guardando en $HOME/refrigerador" mv $archivo $HOME/refrigerador else echo "La manzana $archivo tiene gusano, eliminando la manzana" rm $archivo fi fi done done ## regresando al directorio anterior| cd $lastdir exit 0