Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

para: Forma de concha tradicional

El original para la sintaxis del comando es:

para variable [en palabras]; hacer

comandos

done

Dónde variable es el nombre de una variable que se incrementará durante la ejecución del ciclo, palabras es una lista opcional de elementos que se asignarán secuencialmente a variable y comandos son los comandos que se ejecutarán en cada iteración del ciclo.

La para El comando es útil en la línea de comandos. Podemos demostrar fácilmente cómo funciona:



[yo @ linuxbox ~] $ para i en ABCD; echo $ i; hecho

A B C D

[yo @ linuxbox ~] $ para i en ABCD; echo $ i; hecho

A B C D


En este ejemplo, para recibe una lista de cuatro palabras: "A", "B", "C" y "D". Con una lista de cuatro palabras, el ciclo se ejecuta cuatro veces. Cada vez que se ejecuta el ciclo, se asigna una palabra a la variable i. Dentro del bucle, tenemos un echo comando que muestra el valor de i para mostrar la tarea. Como con el mientras y hasta bucles, el done palabra clave cierra el ciclo.


La característica realmente poderosa de para es la cantidad de formas interesantes en las que podemos crear la lista de palabras. Por ejemplo, a través de la expansión de la riostra:



[yo @ linuxbox ~] $ para i en {A..D}; echo $ i; hecho

A B C D

[yo @ linuxbox ~] $ para i en {A..D}; echo $ i; hecho

A B C D


o expansión de nombre de ruta:



[yo @ linuxbox ~] $ para i en distribuciones * .txt; echo $ i; hecho

distros-por-fecha.txt distros-fechas.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distribuciones-vernums.txt distribuciones-versiones.txt

[yo @ linuxbox ~] $ para i en distribuciones * .txt; echo $ i; hecho

distros-por-fecha.txt distros-fechas.txt distros-key-names.txt distros-key-vernums.txt distros-names.txt distros.txt

distribuciones-vernums.txt distribuciones-versiones.txt


o sustitución de comando:



#! / Bin / bash

# palabra-más larga: encuentra la cadena más larga en un archivo mientras [[-n $ 1]]; hacer

si [[-r $ 1]]; entonces max_word = max_len = 0

para i en $ (cadenas $ 1); hacer len = $ (echo -n $ i | wc -c)

si ((len> max_len)); entonces max_len = $ len max_word = $ i

fi

done

echo "$ 1: '$ max_word' ($ max_len caracteres)"

cambio de fi

done

#! / Bin / bash

# palabra-más larga: encuentra la cadena más larga en un archivo mientras [[-n $ 1]]; hacer

si [[-r $ 1]]; entonces max_word = max_len = 0

para i en $ (cadenas $ 1); hacer len = $ (echo -n $ i | wc -c)

si ((len> max_len)); entonces max_len = $ len max_word = $ i

fi

done

echo "$ 1: '$ max_word' ($ max_len caracteres)"

cambio de fi

done

para: Forma de concha tradicional


En este ejemplo, buscamos la cadena más larga que se encuentra dentro de un archivo. Cuando se le da uno o más nombres de archivo en la línea de comando, este programa usa el instrumentos de cuerda programa (que se incluye en el paquete GNU binutils) para generar una lista de "palabras" de texto legibles en cada archivo. los para loop procesa cada palabra por turno y determina si la palabra actual es la más larga encontrada hasta ahora. Cuando concluye el ciclo, se muestra la palabra más larga.

Si el opcional in palabras parte de la para se omite el comando, para por defecto procesa los parámetros posicionales. Modificaremos nuestro palabra más larga script para usar este método:



#! / Bin / bash

# palabra-larga2: encuentra la cadena más larga en un archivo para i; hacer

si [[-r $ i]]; entonces max_word = max_len = 0

para j en $ (cadenas $ i); hacer len = $ (echo -n $ j | wc -c)

si ((len> max_len)); entonces max_len = $ len max_word = $ j

fi

done

echo "$ i: '$ max_word' ($ max_len caracteres)"

fi hecho

#! / Bin / bash

# palabra-larga2: encuentra la cadena más larga en un archivo para i; hacer

si [[-r $ i]]; entonces max_word = max_len = 0

para j en $ (cadenas $ i); hacer len = $ (echo -n $ j | wc -c)

si ((len> max_len)); entonces max_len = $ len max_word = $ j

fi

done

echo "$ i: '$ max_word' ($ max_len caracteres)"

fi hecho


imagen

Como podemos ver, hemos cambiado el bucle más externo para usar para en lugar de mientras. Al omitir la lista de palabras en el para comando, los parámetros de posición se utilizan en su lugar. Dentro del ciclo, instancias anteriores de la variable i se han cambiado a la variable j. El uso de Turno también ha sido eliminado.


¿Por qué yo?

Puede que hayas notado que la variable i fue elegido para cada uno de los para ejemplos de bucle anteriores. ¿Por qué? En realidad, no hay una razón específica, además de la tradición. La variable usada con para puede ser cualquier variable válida, pero i es el más común, seguido de j y k.



imagen

La base de esta tradición proviene del lenguaje de programación Fortran. En formato, las variables no declaradas que comienzan con las letras I, J, K, L y M se escriben automáticamente como enteros, mientras que las variables que comienzan con cualquier otra letra se escriben como reales (números con fracciones decimales). Este comportamiento llevó a los programadores a usar las variables I, J y K para las variables de ciclo, ya que era menos trabajo usarlas cuando se necesitaba una variable temporal (como suelen ser las variables de ciclo).

También condujo al siguiente ingenio basado en Fortran: "DIOS es real, a menos que se declare entero".


Top OS Cloud Computing en OnWorks: