Participar en la escritura básica de scripts de shell del sistema Linux en serie

Prefacio

Como desarrollador de Android, puede pasar la mayor parte de su tiempo escribiendo y aprendiendo código de nivel superior. Es posible que no sepa mucho sobre algunos aspectos básicos, como sistemas operativos, redes, estructuras de datos y algoritmos, y patrones de diseño, por lo que puede prepararse para serie básica. A partir de la experiencia personal, clasifique algunos puntos de conocimiento básico que creo que son más importantes y útiles para el trabajo. Aunque no pueden ser exhaustivos, se esfuerzan por incluir conocimientos comunes clave. Esto no es solo un intercambio, sino también un registro y resumen del aprendizaje personal.

Ruta de aprendizaje de Linux

imagen
(Esta hoja de ruta solo se basa en mi propia experiencia y realidad. Personalmente, siento que puedo usar y necesito comprender el conocimiento en tiempos de paz. No quiero ser integral, siempre que me enfoque en los avances en la memoria).

1. ¿Qué es un script de shell?

Los scripts de shell son los mismos que los comandos de procesamiento por lotes en Windows.Los scripts de shell son un programa escrito utilizando funciones de shell para combinar comandos de shell y, al mismo tiempo, utilizan juicios y declaraciones de condición de bucle para realizar juicios para lograr algunas funciones complejas. Algunas personas dicen ¿cuál es la diferencia entre este y los lenguajes de programación java y c ++ ordinarios? De hecho, no hay diferencia, pero el uso de scripts de shell no necesita construir un entorno de compilación, que es más universal, pero la función es relativamente inferior a los lenguajes de alto nivel como java y c ++.

2. Estructura básica de la secuencia de comandos

La forma más básica de aprender un idioma es hola mundo. Aquí también tomamos este ejemplo como punto de entrada. Eche un vistazo al script test.sh.

#!/bin/bash
#这是个demo
echo -e "Hello World!\n"
exit 0

La primera línea #! / Bin / bash declara el nombre de shell usado por el script, y esta línea se usa para declarar que la sintaxis en este archivo usa sintaxis bash.

La segunda línea #this es una demostración donde # significa comentarios.

La tercera línea echo -e "¡Hola mundo! \ N" es un comando de shell, y Hola mundo aparece en la pantalla.

La salida de cuarta línea 0 se usa para informar el resultado de la ejecución del script de shell, que es un poco similar a la función principal de C ++, y finalmente tiene un valor de retorno de tipo int, a través del cual se pueden marcar algunos mensajes de error. El valor de retorno se puede obtener a través de $? Después de que se ejecute el script. Después de ejecutar el script anterior, ingrese echo $? En la línea de comando. Puede ver que se devuelve 0.

3. Gramática básica

De hecho, existen algunas rutinas para iniciarse en cualquier idioma. La gramática más básica es cómo definir variables, la escritura de declaraciones condicionales y declaraciones de bucle, y la definición de funciones. Estas son las más básicas, y la escritura de shell la gramática de la escritura también es la misma.

1. Variable

1.1 variables personalizadas

Las variables personalizadas en el script son relativamente simples, mire el código

#!/bin/bash
#定义变量
HELLO="hello"
echo -e "Hello World!\n"
echo $HELLO
exit 0

Se define una variable HELLO, su valor es "hola", al hacer referencia a la variable, se obtiene a través del $ nombre de variable

1.2 El script de llamada es la variable de parámetro que se pasa en

Al llamar a un script de shell, puede pasar algunos parámetros para ingresar al script de shell. Primero modifiquemos el script de shell

#!/bin/bash
#这是个demo
echo -e "传入的参数个数 $# \n"
echo -e "传入的参数是$@ \n"
echo -e "第0个参数是$0 \n"
echo -e "第一个参数是$1 \n"
exit 0

Llame al script./test.sh 1 2 3, el resultado de salida es el siguiente

Número de parámetros pasados ​​en 3

Los parámetros entrantes son 1 2 3

El parámetro 0 es ./test.sh

El primer parámetro es 1

$ # representa el número de parámetros que siguen al archivo de script de shell, 1 2 3 tiene tres parámetros, por lo que la salida es 3;

$ @ puede obtener todos los parámetros de entrada

$ 0 representa el nombre del archivo de shell

$ 1 $ 2 $ 3 ... Puede obtener el correspondiente 1 2 3 a su vez, que se utiliza para obtener cada parámetro separado por un espacio.

2. Declaración condicional

2.1 declaración if

La sentencia if es una sentencia de juicio común, la sintaxis básica es la siguiente

#!/bin/bash
#这是个demo
# if [  ];then
# 语句
# elif [  ];then
# 语句
# else
# 语句
# fi
if [ $1 == 1 ];then
	echo -e hello one
elif [ $1 == 2 ];then
    echo hello two
else
    echo hello three
fi    

Lo que debe tenerse en cuenta aquí es el espacio, si espacio [espacio $ 1 espacio == espacio 1 espacio]; entonces básicamente hay espacios entre si y el símbolo de juicio ([]) y en el símbolo de juicio, así que no te lo pierdas .

2.2 caso ... declaración esac

Esto es similar a la declaración de caso de cambio en un lenguaje de alto nivel.

#!/bin/bash
#这是个demo
# case $变量名称 in
# 	值1)
#     语句
#     ;;
#     值2)
#     语句
#     ;;
#     *)
#     语句
#     ;;
# esac     
case $1 in
	1)
  echo one
    ;;
    2)
  echo two
    ;;
    *)
  echo three
    ;;
esac

Una cosa a tener en cuenta es *) Al igual que por defecto en java swtich, puede coincidir con cualquier valor.

3. Declaración de bucle

3.1mientras tanto, hazlo 和 hasta que esté listo

Entre ellos, wile representa cuando se cumple la condición, el ciclo se llevará a cabo y no se detendrá hasta que no se cumpla la condición. Y hasta es lo contrario de while, significa que cuando se cumple la condición, el ciclo se termina.

#!/bin/bash
#这是个demo
# while [ condition ]
# do
# 	程序段落
# done


# until [ condition ]
# do
#     程序段落
# done    	
Num=$1
while [ $Num != 3 ]
do
	echo $Num
	((Num=Num+1))
done
echo 3
exit 0	

3.2 para bucle

Hay dos formas de escribir un bucle, la primera es la siguiente

#!/bin/bash
#这是个demo
# for var in con1 con2 con3
# do
# 	程序段
# done	
for var in  1 2 3
do
	echo $var
done	

El segundo

#!/bin/bash
#这是个demo
# for (( 初始值; 限制值; 步长))
# do
# 	程序语段
# done	
for (( i=1; i<3; i++))
do
	echo $i
done	

4. Función

#!/bin/bash
#这是个demo
# function fname(){
# 	程序段
# }
function print(){
	echo "paramer 1 is $1 2 is $2"
}

print a b

Puede ver que hay $ 1 y $ 2 variables en la función. Estas variables son diferentes de las variables de parámetro que se pasan para llamar al script definido anteriormente. Aquí, $ 1 y $ 2 representan los parámetros pasados, que deben pasarse al llamar a la función Al ingresar los parámetros, simplemente páselos directamente después del espacio en el nombre del parámetro, separados por espacios.

4. Referencia

"Cocina privada Linux de Bird Brother"

imagen
Sigue mi cuenta pública

Supongo que te gusta

Origin blog.csdn.net/skateboard1/article/details/105180768
Recomendado
Clasificación