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: