shell study-9day - caso de declaración de control de flujo de shell

1. Declaración de control de flujo: caso

( 1) Formato de declaración de caso

La declaración de control de flujo se utiliza para controlar la selección, bucle, giro y retorno del flujo del programa. caso es uno de los componentes;

La instrucción Case compara valores de acuerdo con las diferentes variables y luego ejecuta diferentes operaciones de comando para diferentes valores .

Formato de declaración de caso:

caso variable o expresión en 
variable o expresión 1) 
secuencia de comando 1 
;; 
variable o expresión 2) 
secuencia de comando 2 
;; 
…… 
*) 
secuencia de comando predeterminada 
esac

( 2) Proceso de ejecución

Primero use el valor de "variable o expresión" para comparar con el valor 1. Si el valor es el mismo, ejecute la secuencia de comando después del valor 1 hasta que encuentre el doble punto y coma ";;" y luego salte a esac, lo que significa que la rama termina;

Si no coincide con el valor 1, continúe comparando con el valor 2, si el valor es el mismo, ejecute la secuencia de comandos después del valor 2 hasta que encuentre el punto y coma doble ";;" y salte a esac, que significa la rama final.

Por analogía, si no se encuentra un valor coincidente , la secuencia de comandos después del patrón predeterminado "*)" se ejecuta hasta que la rama finaliza después de que se cumple esac .

Precauciones:

A. "Variable o expresión" debe ir seguida de la palabra en, y el valor de cada "variable o expresión" debe terminar con un paréntesis de cierre. El valor puede ser una variable o una constante. Una vez que la coincidencia encuentra que el valor coincide con un patrón determinado, todos los comandos mientras tanto se ejecutan hasta que ;; finaliza.

B. El valor de la coincidencia puede ser de varios valores, separados por "|".

( 3) Ejemplo de declaración de caso

[root @ test ~] # cat first-case.sh 
#! / bin / bash 
cat << eof 
1. Retirar dinero 
2. Depositar 
3. Consulta 
4. Retirar  tarjeta 
eof 
read -p "Por favor ingrese su opción:" num 
case $ num in  
1) 
        echo "retirar dinero" 
        ;; 
2) 
        echo "depositar dinero" 
        ;; 
3) 
        echo "consulta" 
        ;; 
4) 
        echo "retirar tarjeta" 
        ;; 
*) 
        echo "por favor ingrese un número válido para elegir, Rango válido 1-4 " 
esac 
[root @ test ~] #  
[root @ test ~] # sh first-case.sh 
1. Retirar dinero 
2. Depositar  dinero 
3. Consulta 
4.Tome la tarjeta 
Ingrese su elección: 6 
Ingrese un número válido para elegir, el rango válido es 1-4 
[root @ test ~] # sh first-case.sh 
1. Retirar dinero 
2.Ahorrar dinero
3. Consulta 
4. Retirar la tarjeta 
Introduzca su opción: 1 
Retirar dinero 
[root @ test ~] #

B. Script de vista de proceso Myslq

[root @ test ~] # vi case-mysql.sh  
#! / bin / bash 
read -p "Por favor ingrese start | stop | restart | status | opción:" i 
case $ i in 
start) 
        /etc/init.d/ mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql start" 
        ;; 
stop) 
         /etc/init.d/mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql stop" 
        ;; 
reiniciar) 
         /etc/init.d/ mysqld $ i 
        ps -ef | grep mysqld 
        echo "mysql restart" 
        ;; 
status) 
         /etc/init.d/mysqld $ i 
        ;; 
*) 
        echo "Por favor ingrese la opción correcta" 
esac
root @ test ~] # sh case-mysql.sh 
请 输入 iniciar | detener | reiniciar | estado | 选项: iniciar 
root 2018 1 1 23:04 pts / 0 00:00:00 / bin / sh / usr / bin / mysqld_safe --datadir = / var / lib / mysql - socket = / var / lib / mysql / mysql.sock --pid-file = / var / run / mysqld / mysqld.pid --basedir = / usr --user = mysql 
mysql 2129 2018 3 23:04 pts / 0 00 : 00: 00 / usr / libexec / mysqld --basedir = / usr --datadir = / var / lib / mysql --user = mysql --log-error = / var / log / mysqld.log --pid-file = / var / run / mysqld / mysqld.pid --socket = / var / lib / mysql / mysql.sock 
root 2148 1985 0 23:04 pts / 0 00:00:00 grep mysqld 
mysql start 
[root @ test ~] #


Número público personal:

image.png

Supongo que te gusta

Origin blog.51cto.com/13440764/2575379
Recomendado
Clasificación