Variables en la enseñanza básica de la programación de shell

1. El papel de las variables

  • Se utiliza para almacenar parámetros (valores) específicos que el sistema y los usuarios necesitan utilizar
  • Nombre de variable: use un nombre fijo, preestablecido por el sistema o definido por el usuario
  • Valor variable: se puede cambiar según la configuración del usuario y los cambios del entorno del sistema

Dos, el tipo de variable

  • Variables: valores que cambian, a diferencia de las constantes (básicamente no hay constantes en el shell)
  • Variables personalizadas: definidas, modificadas y utilizadas por los usuarios
  • Variables especiales:Variable ambientalVariable de solo lecturaVariable de ubicaciónVariables predefinidas

Tres variables personalizadas

3.1 Definir una variable

  • Los nombres de las variables comienzan conletraoGuion bajoAl principio, y distingue entre mayúsculas y minúsculas, pero para distinguir claramente,Sugerir todo en mayúsculas.
    Nombre de la variable = valor de la variable ("=" No puede haber espacios en ambos lados, significa asignación, "=" Asignar de derecha a izquierda).

3.2 Ver el valor de una variable

echo $
ejemplo de nombre de variable :Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.3 Utilice comillas al asignar valores

  • Comillas dobles: permite citar otros valores de variable mediante el símbolo $
  • Comillas simples: está prohibido citar otros valores de variables, $ se trata como un carácter normal
  • Comando invertido: sustitución de comando, extraer el resultado de salida después de la ejecución del comando, `` tiene el mismo efecto que $ (...)
    Ejemplo:
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

3.4 Establecer el alcance de la variable

Podemos usar el comando pstree para ver el entorno de Shell:
Inserte la descripción de la imagen aquí
ingrese el comando bash para ingresar al entorno de sub-Shell:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
presione Ctrl + D o ingrese el comando de salida para salir del entorno de sub-Shell: por
Inserte la descripción de la imagen aquí
defecto, las variables recién definidas solo son válidas en el entorno de Shell actual, por lo que se llamanVariable local. Al entrar en la subrutina o en el nuevo entorno de sub-Shell, las variables locales ya no se pueden utilizar.
Inserte la descripción de la imagen aquí
Las variables especificadas se pueden exportar como variables globales a través de la exportación de comandos internos, de modo que las variables definidas por el usuario puedan continuar usándose en todos los entornos de sub-Shell.
Formato 1:
nombre de variable de exportación
Formato 2:
nombre de variable de exportación = valor de variable
Ejemplo:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.5 Operación de variables enteras

Formato:
expr variable 1 operador variable 2 [operador variable 3]
operador: + suma, -susta, * multiplicación, / división,% resto

常用的运算表达式:
i=$(expr 12 \* 5)
i=$((10 * 5))
i=$[10 * 4]
let i=10*3

i++ 相当于 i=$[$i+1]
i-- 相当于 i=$[$i-1]
i+=2 相当于 i=$[$i+2]

Ejemplo:
Inserte la descripción de la imagen aquí
Nota: bash solo puede realizar operaciones con números enteros
Ejemplo:
Inserte la descripción de la imagen aquí
Bash no admite operaciones de punto flotante. Si necesita realizar operaciones de punto flotante, puede usar bc, awk.
Introducción detallada: aritmética de punto flotante en la enseñanza básica de shell .

Cuatro variables de shell especiales

4.1 Variables ambientales

Creado de antemano por el sistema para configurar el entorno de trabajo del usuario.
Archivos de configuración: / etc / profile (globalmente efectivo), ~ / .bash_profile (entorno de usuario actual)

常见环境变量
PWD、PATH
USER、SHELL、HOME

Utilice el comando env para ver las variables de entorno en el entorno de trabajo actual:

  • variableUSUARIOIndica el nombre de usuario
  • CASAIndica el directorio de inicio del usuario
  • LANGRepresenta el idioma y el juego de caracteres.
  • PWDIndica el directorio de trabajo actual
  • variableCAMINORepresenta la ruta de búsqueda predeterminada para programas ejecutables.
相关命令:
echo $PATH					#查看当前搜索路径
PATH="$PATH:/root"			#将/root目录添加到搜索路径
export PATH="$PATH:/root"	#输出为全局环境变量
first.sh

4.2 Variables de solo lectura

Se utiliza cuando no se permite modificar el valor de la variable.

readonly 命令设置只读变量
readonly PRODUCT				#设置为只读变量
echo $PRODUCT
PRODUCT=Python			        #只读变量不可以被重新赋值
unset PRODUCT					#只读变量不可以被删除,unset 命令用于删除变量,但无法删除只读变量,只能重启系统解决

Ejemplo:
Inserte la descripción de la imagen aquí

4.3 Variables de ubicación

  • Expresado como $ n, n es un número entre 1-9, $ 0 representa el comando en sí, 1-9 representa del primero al noveno parámetro,Más de diez parámetros deben usar {} para indicar
  • Al ejecutar operaciones de línea de comando, los parámetros de cadena se asignan a las variables de posición en orden de izquierda a derecha.Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

4.4 Variables predefinidas

$*、$@:表示命令或脚本要处理的参数。
  $*:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4"。
  $@:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立  的,代表"$1" "$2" "$3" "$4"。

$0:表示当前执行的脚本或命令的名称。
$#:表示命令或脚本要处理的参数的个数。	
$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。
也常被用于Shell脚本中return退出函数并返回的退出值。

vim mybak.sh
#!/bin/bash
time=backup-`date +%F`.tar.gz
tar zcf $time $* &> /dev/null	#/dev/null表示的是一个黑洞文件,通常用于丢弃不需要的数据输出
echo "已执行 $0 脚本,"
echo "共完成 $# 个对象的备份"
echo "具体内容包括: $*"

chmod +x mybak.sh
./mybak.sh /etc/passwd /etc/shadow

Ejemplo:
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51613313/article/details/111317516
Recomendado
Clasificación