Título del catálogo
Parámetros de eco
-
echo -n # significa que no hay salida de nueva línea
-
echo -e muestra los caracteres de escape, muestra el contenido de escape en la pantalla (debe usarse con comillas dobles)
-
Los caracteres de escape más utilizados son:
\b
\c
\n
\f
\v
\t
\r
\\
-
\ b : Después de escapar, es equivalente a presionar la tecla de retroceso (retroceso), pero solo si hay caracteres después de "\ b": "\ b" significa eliminar el carácter anterior, y "\ b \ b" significa eliminar el primeros dos personajes
-
\ c : salida sin salto de línea. Cuando no hay caracteres después de "\ c", la función es equivalente a echo -n, pero cuando todavía hay caracteres después de "\ c", los caracteres después de "\ c" no serán Producción
-
\ n : Nueva línea, los caracteres que se generarán comienzan en una nueva línea desde "\ n". En Linux, \ n tiene el significado de retorno de carro.
-
\ f : nueva línea, pero el comienzo de la nueva línea después de la nueva línea está conectado al final de la línea anterior
-
\ v : igual que \ f
-
\ t : Después de escapar, significa insertar una pestaña, es decir, una pestaña horizontal
-
\ r : El cursor se mueve al principio de la línea, pero no se ajusta, lo que equivale a usar los caracteres después de "\ r" para sobrescribir los caracteres de la misma longitud antes de "\ r", pero cuando no hay ningún carácter. después de "\ r", "\ r" "El carácter anterior no se sobrescribirá
-
\\ : significa insertar "\" en sí mismo
-
declaración de bucle
para declaración de bucle
- Leer diferentes valores de variables para ejecutar el mismo conjunto de comandos uno por uno (denominados colectivamente operación transversal)
- formato
for 变量名 in 取值列表
do
命令序列
done
-
El ejemplo de bucle for más simple
- La primera forma de expresión: i en {1… 10} —— i en {1… 10… 2} 2 significa sumar 2 después de cada ciclo de manera iterativa
- La segunda forma de expresión: i en $ (seq 1 10) —— i en $ (seq 1 2 10) tiene el mismo significado que el anterior
- La tercera forma de expresión: (i = 1; i <10; i ++) —— (i = 1; i <= 10; i + = 2) El mismo significado que el anterior
- La primera forma de expresión: i en {1… 10} —— i en {1… 10… 2} 2 significa sumar 2 después de cada ciclo de manera iterativa
-
Ejemplo de aplicación y aprendizaje en vivo 1
Agregar usuarios en lotes: los nombres de usuario se almacenan en el archivo users.txt, cada línea, la contraseña inicial se establece en 123456
-
Ejemplo 2 de aprendizaje en vivo
Verifique el estado del host según la dirección IP. La dirección IP se almacena en el archivo ipadds.txt, uno por línea. Utilice el comando ping para verificar la conectividad de cada host
while declaración de bucle
- Pruebe una determinada condición repetidamente y ejecútela repetidamente siempre que la condición sea verdadera
- formato
while 条件测试操作
do
命令序列
done
- Si bien es una operación simple (la posición de inserción de la iteración en el contenido de salida tiene una cierta relación)
- Algunos ejemplos de la aplicación de la instrucción while
1. Agregar usuarios en lotes: el nombre de usuario debe comenzar con stu y estar numerado en orden numérico. Hay 20 en total, a saber, stu1 ... stu20, y la contraseña se establece en 123456
- Mejora de la dificultad
2. Adivina el juego del precio de los productos básicos: obtén un número aleatorio a través de la variable RANDOM, pide al usuario que adivine y registre el número de veces, y sal del ciclo después de adivinar - RANDOM puede obtener aleatoriamente valores aleatorios de 0-32767
- Si queremos generar números en el rango de 0-25:
$(($RANDOM%26))
- Si desea obtener un número en el rango de 1 a 68:
$(($RANDOM%68+1 ))
- Si desea obtener un número en el rango de 6-87:
$(($RANDOM%82+6 ))
hasta la declaración de bucle
- Pruebe una determinada condición repetidamente y ejecútela repetidamente siempre que la condición no esté establecida
- Equivalente a while a su vez con while, hasta que parece un poco insípido
until 条件测试操作
do
命令序列
done
- hasta simple operación
- Algunos ejemplos de la instrucción hasta
1. Calcule el valor de la suma de 1 a 50 y calcule por acumulación de bucle
salir del bucle
- break : Salta del bucle que contiene break
- Bucle doble simple
- Salta del bucle de una sola capa en el bucle interior
- la ruptura es secuencial
- break 2 : significa que el número después de saltar de la segunda capa del bucle es cuántas capas quedan fuera del bucle
continuar abortando un solo bucle
- Continuar : Aborta un comando en un bucle, pero no detendrá por completo el comando completo.
- No se recomienda usar continue in a while.
#Continue se usa en while. En este momento, la posición del código iterativo es muy importante y afectará el resultado de todo el código.
Separador de campo IFS
- El separador de campo IFS
contiene espacios , tabulaciones y nuevas líneas de forma predeterminada\t
\n
Si un fragmento de contenido editado en users.txt tiene espacios
-
IFS=$' \t\n'
- Puede redefinir la variable de IFS
IFS=$'\n'
# para reconocer solo el carácter de nueva línea - ¿Qué debo hacer si no se puede reconocer el espacio después de que se modifica IFS y se realizan otras operaciones?
IFS=$'\n' #进行重新定义变量IFS只识别换行符
OLDIFS=$' \t\n' #重新定义之前的内容
.......
IFS=$OLDIFS #把定义的变量重新定义给IFS