Shell Advanced Tutorial-Lesson 1 Aplicación de la declaración de caso

Shell Advanced Tutorial-Lesson 1 Aplicación de la declaración de caso

1. Introducción a la declaración del caso
Por ejemplo, iniciar el servicio httpd
iniciar
detener
recargar
reiniciar

acl访问控制 匹配即停止。

case语句主要适用于,某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。
case语句匹配一个值与一个模式,如果匹配成功则执行所匹配的命令序列。

2. La estructura del enunciado del caso

case $i in
	mode1)
		commands1
		;;
	mode2)
		commands2
		;;
	*)
		default commands
		;;
esac

Nota: { 1. El valor debe ir seguido de la palabra clave in; 2. Cada modo debe terminar con un corchete de cierre ")"; 3. El valor puede ser un valor específico o una variable; 4. La palabra clave esac es muy importante, Representa el final del enunciado del caso; 5. Con respecto al punto y coma doble, representa la técnica de secuencia de comandos; }





3. Flujo de ejecución de la instrucción del caso { Coincidencia de patrones: después de que la coincidencia encuentra que el valor coincide con un patrón determinado, todos los comandos comienzan a ejecutarse mientras tanto hasta ;;. El valor detectará todos los patrones que coincidan. Una vez que el patrón coincide, ningún otro patrón continuará después de ejecutar el comando correspondiente del patrón emparejado. Si no hay un patrón coincidente, use un asterisco * para capturar el valor y luego ejecute los siguientes comandos. }




4. Ejemplo pequeño
Nombre de secuencia de comandos: untar.sh
Función: Descomprimir archivos en lotes.
Ideas de realización de secuencias de comandos: { 1. El archivo es un paquete comprimido (tar.gz, tar.bz2) 2. El comando para descomprimir el archivo (tar.gz (archivo tar zxf) , tar.bz2 (archivo tar jxf) 3. Cree el archivo en el entorno de prueba { tar zcf /home/passwd.tar.gz / etc / passwd tar zcf /home/passwd.tar.bz2 / etc / passwd } } Contenido del script { #! / bin / bash









FILE=/home/

case $1 in 
	*.tar.gz)
		tar zxf $FILE$1
		if [ $? -eq 0 ]
			then
				echo "$1 success!"
			else
				echo "$1 false!"
		fi
	;;
	*.tar.bz2)
		tar jxf $FILE$1
		if [ $? -eq 0 ]
			then
				echo "$1 success!"
			else
				echo "$1 false!"
		fi
	;;
	*)
		echo "Please Use {tar.gz|tar.bz2} format file !"
	;;
esac
}

执行结果

[root @
centos home] # ls passwd.tar.bz2 passwd.tar.gz untar.sh
[root @ centos home] # sh untar.sh passwd.tar.gz passwd.tar.gz
¡éxito!
[root @
centos home] # ls etc passwd.tar.bz2 passwd.tar.gz untar.sh
[root @ centos home] # ls etc /
passwd

Supongo que te gusta

Origin blog.csdn.net/weixin_45603370/article/details/110919106
Recomendado
Clasificación