1. Declaración de flujo de control para
( 1) Para formato de declaración
para la variable en la lista de parámetros, haga el comando hecho
o
para variable en la lista de parámetros; hacer comando hecho
Nota: Cada vez que tome los datos de una lista de bucles, entréguelos al siguiente bloque de código.
( 2) Ejemplos de declaraciones for
A , valor directo
[root @ test ~] # vi for-1.sh #! / bin / bash for i in a b c d e do echo test is $ i done [root @ test ~] # sh for-1.sh test is a test is b test es c prueba es d prueba es e [root @ test ~] #
B. Valor en variable
[root @ test ~] # vi for-2.sh #! / bin / bash list = "a b c d e" para i en $ list do echo test is $ i done [root @ test ~] # sh for-2.sh test es una prueba es b prueba es c prueba es d prueba es e [root @ test ~] #
C , toma el valor del comando
[root @ youxi1 ~] # vim d.sh #! / bin / bash para i en `head -5 / etc / passwd` do echo $ i done [root @ test ~] # sh for-3.sh root: x : 0: 0: root: / root: / bin / bash bin: x: 1: 1: bin: / bin: / sbin / nologin daemon: x: 2: 2: daemon: / sbin: / sbin / nologin adm: x: 3: 4: adm: / var / adm: / sbin / nologin lp: x: 4: 7: lp: / var / spool / lpd: / sbin / nologin [root @ test ~] #
( 3) Separador de carcasa personalizado
De forma predeterminada, el shell base utilizará espacios, tabulaciones y nuevas líneas como delimitadores. Personalizado como separador a través de IFS .
Especifique un solo carácter como separador:
IFS =: #Use: dos puntos como separador
IFS puede especificar un solo carácter como separador, IFS =: (usando dos puntos como separador); IFS también puede especificar múltiples caracteres como separador, IFS = \ n :; (usando una barra invertida, n, dos puntos, punto y coma como Separador). Nota: En IFS, $ '\ n' y $ '\ t' son saltos de línea y tabulaciones.
A. Ejemplo 1
[root @ test ~] # vim a.sh #! / bin / bash list = "a1 a2 b1 b2 \" hola mundo \ "" para i en $ list do echo $ i done [root @ test ~] # sh a .sh a1 a2 b1 b2 "hola mundo"
B. Especifique \ n retorno de carro como separador de la instrucción for
[root @ test ~] # vi for-4.sh #! / bin / bash IFS = $ '\ n' for i in `head -2 / etc / passwd` do echo" $ i " hecho [root @ test ~ ] # sh para-4.sh root: x: 0: 0: root: / root: / bin / bash bin: x: 1: 1: bin: / bin: / sbin / nologin [root @ test ~] #
( 4) Para declaraciones en lenguaje C
A. Formato gramatical
para ((i = 0; i <10; i ++)) no comandos hecho
B. Bucle de variable única
[root @ test ~] # vi for-5.sh #! / bin / bash for ((i = 1; i <= 3; i ++)) do echo num is $ i done [root @ test ~] # sh for -5.sh num es 1 num es 2 num es 3 [root @ test ~] #
C , para anidar (multivariante)
[root @ test ~] # vi for-6.sh #! / bin / bash for ((a = 1, b = 5; a <6; a ++, b--)) do echo num es $ a - $ b done [root @ test ~] # sh para-6.sh num es 1 - 9 num es 2 - 8 num es 3 - 7 num es 4 - 6 num es 5 - 5 [root @ test ~] #
D , triángulo de impresión
[root @ test ~] # vi for-7.sh #! / bin / bash for ((i = 1; i <5; i ++)); do for ((j = 1; j <= i; j ++)) ; do echo -n '*' hecho echo -e "\ n" hecho [root @ test ~] # sh for-7.sh * ** *** **** [root @ test ~] #
-e Interpretar caracteres de escape \ t tab \ n presione enter \ b eliminar el carácter anterior \ un sonido de alarma \ 033 [32m $ var \ 033 [0m 32 --- verde 31 --- rojo -n sin salto de línea
Número público personal: