Red de conocimiento informático - Programación de la red - Por favor, dígame cómo utilizar múltiples variables en la declaración for in del shell

Por favor, dígame cómo utilizar múltiples variables en la declaración for in del shell

1. Recorre cadenas separadas por espacios:

#!/bin/bash

servers="abc123 das 222"

para server in$servers

do

echo$server

done

2 Recorre la lista de cadenas, separadas por espacios:

#!/bin/bash

para servidor en a b c

do

echo$server

done

3. Recorra la lista de parámetros:

#!/bin/bash

for arg en $*

do

<. p>echo$arg

hecho

4. Recorra el directorio de archivos:

#!/bin/bash

for i in ~/*.sh

do

echo$i

cat$i

hecho

Nota: $i es el directorio y el archivo completos. La declaración for in también se puede usar con ` ` y $(), por ejemplo:

#!/bin/bash

for i. en $( ls~/*.sh)

do

echo$i

cat$i

hecho

Información ampliada:

Resumen del uso del shell de Linux (para in)

1. Sintaxis

¿para el nombre de la variable? segmento (comando)? hecho

Nota 1: ¡Es el nombre de la variable, no la variable $!

Nota 2: ¡Las listas pueden causar escándalo!

2. Aplicación

La primera categoría: bucle digital-->aplicación de secuencia detrás en

#!/bin/bash # ¿también se produce aritmética? secuencia -->El valor predeterminado es 1

para i en $(seq 1 10)?

#¡El resultado es una cadena y el IFS predeterminado está separado por espacios! do

? echo $(expr $i \* 3 + 1); #Revisión principal: ¡el uso especial de la multiplicación expr! -->¿Separado hecho con espacios?

Suplemento: Los números naturales generados -->Aplicación de {} después en

total=0?

#Global Variable para i en {1..100} #".." significa continua y el valor predeterminado es IFS separado por espacios do

((total+=i))? doneecho -e "total is:$ { total}"?

#Comentarios de varias líneas

<

#Múltiples files do

echo $i

samtools view -c $i doneCOMMENT

La segunda categoría: bucle de caracteres

La más original

#!/bin/bash

#Use el bucle list for para mostrar el inglés correspondiente de lunes a domingo-->inglés de la fecha de aprendizaje

para día en lunes martes miércoles jueves viernes sábado domingo?

echo "$day" done

Tipo de variable

#!/bin/bash list? =

"Linux Java C++ Python" para i en $list

do

? echo -e "El idioma es ${i}"

¿listo?

cat

La aplicación detrás de in-->lee el contenido del archivo línea por línea (el valor predeterminado es IFS), por lo que no se imprime línea por línea.

#!/bin/bashfor? in $(cat log color.sh)?

#Nota: los archivos pwd en el directorio actual

hacen eco de $ Ya hice

La tercera categoría: búsqueda de ruta

El comando después de ls in es --> leer el archivo bajo la contraseña actual (en un sentido amplio).

#!/bin/bash para i en `ls`;? #ls se puede usar en combinación con comodines

? echo $i es el nombre del archivo\! Nota:\¿Aplicación terminada? ¿Usar comodines para leer directorios (sin comando)

para el archivo en ~/* #Contenido en el directorio de primer nivel -->No mostrar de forma recursiva?

? echo $file es la ruta del archivo \! #${file} representa la ruta completa del archivo realizado

Pasar parámetros a través del script

#!/bin/bash

#Memoria 1: ¡Cuente el número de parámetros del script echo "el número de argumento es $#"!

#Memoria 2: Contenido del parámetro-->¡Esto se puede reemplazar con $@ para realizar pruebas!

echo "la entrada es $*"

Ejecución #Loop

para el argumento en "$*"; ¿hacer?

echo?

"$argumento "? hecho