Conceptos básicos de Shell 2-variables

variable

Las variables se derivan de las matemáticas y son conceptos abstractos que pueden almacenar resultados de cálculos o representar valores en lenguajes informáticos. Se puede acceder a las variables por nombre de variable, y el valor al que se accede es variable

  • No se puede empezar con un número (la especificación estándar está en mayúsculas)
  • El tipo predeterminado del valor de la variable es un tipo de cadena y el uso específico debe convertirse
  • No puede haber espacios alrededor de la variable (por el bien de la belleza)
  • Use comillas dobles si hay espacios
  • Las variables se asignan varias veces, prevalecerá la última

Clasificación de variables

  • Variable definida por el usuario: Nombre: Función personalizada: Contenido personalizado: Personalizado

  • Variables de entorno: se utilizan para datos relacionados con el entorno del sistema.

    • Variables de entorno definidas por el usuario: Nombre: Función de personalización: Contenido de personalización: Personalización
    • El sistema viene con variables de entorno: nombre: confirmar el rol: confirmar el contenido: personalizado
  • Variables de parámetros posicionales: se utilizan para que los scripts pasen parámetros

    • Nombre: Determinar rol: Determinar contenido: Personalizado
  • Variables predefinidas: bash tiene variables definidas

    • Nombre: Determinar rol: Determinar contenido: Personalizado

Variables definidas por el usuario

name=test
#创建自定义变量
name=test1
#修改也就是覆盖变量值
$name
#变量调用
unset name
#删除变量
set -u
#查看未定义过变量名,值为空,而如果定义为空,这样就无法区分,使用set -u可以区分,变量不存在就报错

Variable ambiental

环境变量在父shell和子shell中都是生效的,而用户自定义只在当前shell下

Variables de entorno definidas por el usuario

export name=test
#就是基于用户自定义加了export
#set 查看所有变量
#env 查看环境变量

El sistema viene con variables de entorno

env

LANG=en_US.UTF-8   #语言
HISTCONTROL=ignoredups
HOSTNAME=host138   #主机名
OLDPWD=/bin   
XDG_SESSION_ID=3
USER=root      #用户名
PWD=/root 
HOME=/root
SSH_CLIENT=192.168.26.1 63647 22
SSH_TTY=/dev/pts/0
MAIL=/var/spool/mail/root
SHELL=/bin/bash  #shell类型
TERM=x term
SHLVL=2
LOGNAME=root
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
XDG_RUNTIME_DIR=/run/user/0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#系统命令查找路径
HISTSIZE=1000  #历史命令记录数
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/usr/bin/env
#系统自带环境变量都是会影响到系统正常运行

Variables de entorno de PS1 (símbolo del sistema)
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

vi /etc/bashrc
#永久修改PS1环境变量

Variables lingüísticas

[root@host138 ~]# echo $LANG
en_US.UTF-8
#保存的是当前的操作语系
[root@host138 ~]# locale -a | wc -l
865
#查看系统支持的语言

[root@host138 ~]# locale 
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
#查看系统已经安装的语言

Variable de parámetro posicional

  • $ n: n es un número, 0 se representa a sí mismo, $ 1-9 representa del primero al noveno parámetro, 9 representa del primero al noveno parámetro para los parámetros superiores a 10 y se utiliza para los parámetros superiores a 109 Generación Tabla primero un ésimo a los primeros nueve th parámetros números , . 1 0 a en la referencia número con {10}(común)
  • ∗: representa todos los parámetros del comando, *: representa todos los parámetros del comando, * : Orden de comando de la tabla de generación en el que hay números de parámetro , * todos los parámetros en su conjunto
  • $ @: representa todos los parámetros en el comando, cada parámetro se trata de manera diferente y pertenece a un solo ** (comúnmente usado) **
  • $ #: el número de parámetros estadísticos
#!bin/bash
a=$1
b=$2

echo $a 
echo $b

[root@host138 ~]# bash test.sh 1 2
1
2
#传递2个参数给脚本,这种方式往往只适合写脚本的本人使用,因为别人不知道需要输入几个参数,以及各式是什么

#!bin/bash

echo $*
echo $*
echo $#
[root@host138 ~]# bash test.sh 1 2 3 4 5
1 2 3 4 5  #代表是一个整体
1 2 3 4 5  #每个数值都是单个整体
5  #参数个数
#但是缺陷就是其他用户无法知道需要输入什么类型的值

Variables predefinidas

  • $? El valor de retorno del último comando de ejecución, 0 significa correcto, otros valores son incorrectos
  • $$ ID de proceso del proceso actual
  • $! El último número de proceso que se ejecuta en segundo plano
    Inserte la descripción de la imagen aquí

leer recibe salida de teclado

Las variables de parámetros posicionales tienen muchos defectos para otros usuarios. No es que el escritor no pueda juzgar el número y tipo de parámetros, sino que read ha agregado una entrada interactiva y los usuarios pueden ingresar de acuerdo con las indicaciones.

  • -p El mensaje de solicitud en espera de entrada, puede especificar qué información se requiere para la salida
  • -t El número de segundos para esperar la entrada del usuario.
  • -n Ingrese un carácter, presione Enter para confirmar
  • -s ocultan el contenido ingresado, adecuado para ingresar información de seguridad como contraseñas
#!bin/bash

read -t 30 -p "Please enter whole number:" num1
read -t 30 -p "Please enter password :" -s num2

echo -e "\n$num1"
echo $num2

结果
[root@host138 ~]# bash test.sh 
Please enter whole number:11111
Please enter password :
11111
22222

Operador

declarar declarar tipo de variable

  • -Establecer tipo de variable
  • + Eliminar tipo de variable
  • -i se declara como un entero
  • -r La declaración es de solo lectura y no se puede modificar ni cancelar
  • -x se declara como una variable de entorno
  • -p muestra el tipo de variable declarada
  • -a se declara como un tipo de matriz (es decir, el significado de una lista)

Pero todavía hay muchos tipos que no son compatibles. El tipo de fecha, tipo de marioneta, tipo de punto flotante, etc.
declaran tener las deficiencias que son difíciles de usar. No recomendado

$ ((operación))

Inserte la descripción de la imagen aquí

Las variables predeterminadas son todos caracteres y no se pueden utilizar

Inserte la descripción de la imagen aquí

Calcular por $ ((cálculo)), se recomienda utilizar

Prioridad de operación (cuanto mayor sea la prioridad, mayor será la prioridad)
Inserte la descripción de la imagen aquí

Tampoco se recomienda, puede ajustar la prioridad directamente a través de paréntesis ()
Inserte la descripción de la imagen aquí

Archivo de configuración de variables de entorno

archivo de configuración de origen

Archivo de configuración de variables de entorno en el directorio de inicio (válido para el shell actual)

  • .bash_profile
  • .bashrc

Archivo de configuración de variables de entorno en el directorio etc (todos los shells tienen efecto)

  • /etc/profile.d/*.sh
  • / etc / profile
  • / etc / bashrc

Proceso de llamada del archivo de configuración
Inserte la descripción de la imagen aquí

Proceso de variable de entorno cargado después del inicio de sesión del usuario

Inserte la descripción de la imagen aquí

Situación de no inicio de sesión, su o subshell

Salir del archivo de variable de entorno efectivo

  • .bash_logout

El valor predeterminado está vacío, puede configurar la función según sus necesidades. El
sistema debe ejecutar el cierre de sesión para que surta efecto.

Supongo que te gusta

Origin blog.csdn.net/yangshihuz/article/details/110850509
Recomendado
Clasificación