Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo escribir un bucle for en shell

Cómo escribir un bucle for en shell

La forma en que funciona el bucle for es extraer el significado de los elementos seriales, colocarlos en las variables especificadas en orden y luego ejecutar repetidamente el área de comando incluida (entre do y done) hasta que todo Los elementos están agotados.

Entre ellos, el serial es una combinación de algunas cadenas, separadas entre sí por delimitadores (como espacios) definidos por $IFS. Estas cadenas se denominan campos.

La estructura de sintaxis de for es la siguiente:

1

2

3

4

para variable en serie

do

Ejecutar comando

done

Descripción:

Línea 1, coloque iterativamente los campos de la serie en variables

Líneas 2-4, luego el área de comando entre do y done se ejecutará repetidamente hasta que se hayan procesado todos los campos de la serie.

Diagrama de flujo:

Caso de uso 1

Utilice un bucle for para crear aaa1-aaa10 en el directorio de inicio y luego cree el directorio de bbb1-bbb10. en aaa1-aaa10

p>

1

2

3

4

5

6

7

8

9

10

11

12

#!/bin/bash

para k en $( seq 1 10 )

do

mkdir /home/ kuangl/aaa${k}

cd /home/kuangl/aaa${k}

para l en $( seq 1 10 )

hacer

mkdir bbb ${l}

cd /home/kuangl/aaa${k}

hecho

cd ..

hecho

Explicación:

Línea 2, seq se usa para generar todos los números enteros de un determinado número a otro número.

La línea 4 crea una carpeta en el directorio de inicio.

Línea 6, usando un bucle for para crear la carpeta

Resultado de la prueba:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15 p>

16

17

18

19

20

21

22

23

24

25

[root@test01 kuangl]# ll

total 80

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa1

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa10

drwxr-xr-x 12 raíz 4096 20 de julio 01:23 aaa2

drwxr-xr-x 12 raíz 4096 20 de julio 01:23 aaa3

drwxr-xr -x 12 raíz raíz 4096 20 de julio 01:23 aaa4

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa5

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa6

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa7

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa8

drwxr-xr-x 12 raíz raíz 4096 20 de julio 01:23 aaa9

[root@test01 kuangl]# cd aaa1

[root@test01 aaa1 ]# ll

total 40

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb1

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb10

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb2

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb3

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb4

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb5

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb6

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb7

drwxr-xr-x 2 raíz raíz 4

096 20 de julio 01:23 bbb8

drwxr-xr-x 2 raíz raíz 4096 20 de julio 01:23 bbb9

1

Caso de uso 2

Enumere el espacio en disco ocupado por cada subdirectorio en el directorio var.

1

2

3

4

5

6 p>

7

#!/bin/bash

DIR="/var"

cd $DIR

para k en $(ls $DIR)

hacer

[ -d $k ] amp amp; du -sh $k

hecho

Descripción:

Línea 4, realice el procesamiento de bucle for en cada archivo en el directorio /var.

Línea 6, si el archivo en /var es un directorio, use du -sh para calcular el espacio en disco ocupado por el directorio.

Resultados de la prueba:

1

2

3

4

5

6

7

8

9

10

11 p>

12

13

14

15

16

17

18

19

20

21

22

[root@test01 scripts ]# ./var.sh

276M de caché

4.0K cvs

84K db

8.0K vacíos

4.0K ftp

4.0K juegos

4.0K gdm

21G lib

4.0K local

16K bloqueo

Registro 7.4G

4.0K registros

0 correo

4.0K nis

4.0 K opt

4.0K preserve

336K run

3.7G spool

212K tmp

4.1G www

p>

4.0K año