shell study-10day - declaración de control de flujo de shell para

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:

image.png

Supongo que te gusta

Origin blog.51cto.com/13440764/2575382
Recomendado
Clasificación