Declaración de casos bash sintaxis y ejemplos

Declaración de casos bash sintaxis y ejemplos

La declaración del caso es una declaración condicional poderosa en Bash que le permite probar una variable en una lista de valores. Es una alternativa más concisa y eficiente al uso de múltiples declaraciones if-then. Muchas veces es una buena alternativa a las declaraciones if-else. También puede usarlo para procesar los argumentos de la línea de comandos en un script de shell.

En este artículo, le presentaremos la declaración del caso en Bash y proporcionaremos ejemplos de cómo se puede usar en scripts bash.

La sintaxis de la declaración de caso en Bash

La sintaxis de la declaración de caso en Bash es la siguiente:

Expresión del caso en el patrón1) comandos1 ;; patrón2) comandos2 ;; patrón3) comandos3 ;; *) default_commands ;; ESAC
12345678910Expresión del caso en el patrón1) comandos1 ;; patrón2) comandos2 ;; patrón3) comandos3 ;; *) default_commands ;; esac

La palabra clave del caso indica el inicio de la instrucción de caso, y la palabra clave en separa la expresión que se prueba de la lista de patrones. Cada patrón está encerrado entre paréntesis y seguido de una lista de comandos que se ejecutará si el patrón coincide con la expresión. El doble punto y coma (;;) indica el final de cada lista de comandos. El *) El patrón coincide con cualquier expresión que no coincida con ninguno de los patrones anteriores, y los controles predeterminados se ejecutan en ese caso.

Usando la declaración de caso en Bash

La declaración de caso en Bash es particularmente útil cuando desea comparar una variable con una lista de valores posibles. Aquí hay un ejemplo que muestra cómo puede usar el estado de caso para verificar el valor de la variable de entorno de $ usuarios:

Case $ user en root) echo "Enhelgue como root.";; Ubuntu) echo" estás conectado como Ubuntu.";; *) echo" está conectado como un usuario desconocido.";; esac
12345678Case $ user en root) echo "Enhelgue como root.";; Ubuntu) echo" estás conectado como Ubuntu.";; *) echo" está conectado como un usuario desconocido.";; esac

En este ejemplo, la expresión que se está probando es el valor del $ Usuario Variable ambiental. Los patrones son los posibles valores de $ Usuario (root y ubuntu), y el patrón predeterminado es el *) patrón, que coincide con cualquier valor que no sea root o ubuntu.

Declaración de caso con argumentos de línea de comandos

También puede usar la declaración de caso para procesar los argumentos de la línea de comandos en un script bash. Aquí hay un ejemplo que muestra cómo usar la instrucción Case para manejar diferentes opciones de línea de comandos:

mientras que getopts "A: B: C:" Opt; hacer caso $ opt en a) echo "La opción A fue aprobada con el argumento $ Optarg" ;; b) echo "La opción B se aprobó con el argumento $ Optarg" ;; c) echo "La opción C se aprobó con el argumento $ Optarg" ;; *) echo "opción inválida: -$ optarg" ;; ESAC hecho
123456789101112mientras que getopts "A: B: C:" Opt; hacer caso $ opt en a) echo "La opción A fue aprobada con el argumento $ Optarg" ;; b) echo "La opción B se aprobó con el argumento $ Optarg" ;; c) echo "La opción C se aprobó con el argumento $ Optarg" ;; *) echo "opción inválida: -$ optarg" ;; esacdone

En este ejemplo, el getopts El comando se utiliza para procesar las opciones de línea de comando. La instrucción de caso se utiliza para manejar cada opción (A, B y C) y su argumento correspondiente. El patrón predeterminado (*) se usa para manejar cualquier opción inválida.

Declaración de casos con expresión regular

Las expresiones regulares utilizadas en la declaración de caso están encerradas en soportes cuadrados ([]). Esto se debe a que estamos usando clases de caracteres para que coincidan con diferentes tipos de caracteres. El + Se utiliza el signo después del segundo patrón para que coincida con uno o más ocurrencias del patrón anterior (en este caso, letras minúsculas). Las expresiones regulares pueden ser bastante complejas, y hay muchas más características y opciones que puede usar en Bash para que coincida con los patrones.

Aquí hay un ejemplo de cómo puede usar expresiones regulares con la declaración de caso en Bash:

#!/bin/bash lectura -p "Ingrese una cadena:" Str Case $ Str en [A-Z] [0-9]) echo "La cadena comienza con una letra minúscula y termina con un número.";; [A-Z] [A-Z]+) Echo" La cadena comienza con una letra mayúscula y es seguida por letras minúsculas.";; [0-9]+) Echo" La cadena contiene solo números.";; *) echo" La cadena no coincide con ninguno de los patrones.";; esac
123456789101112131415161718#!/bin/bash lectura -p "Ingrese una cadena:" Str Case $ Str en [A-Z] [0-9]) echo "La cadena comienza con una letra minúscula y termina con un número.";; [A-Z] [A-Z]+) Echo" La cadena comienza con una letra mayúscula y es seguida por letras minúsculas.";; [0-9]+) Echo" La cadena contiene solo números.";; *) echo" La cadena no coincide con ninguno de los patrones.";; esac

En este ejemplo, estamos utilizando expresiones regulares para que coincidan con diferentes patrones de cadenas. El primer patrón coincide con las cadenas que comienzan con una letra en minúsculas y terminan con un número, como A1, B2, etc. El segundo patrón coincide con las cuerdas que comienzan con una letra mayúscula y son seguidos por una o más letras minúsculas, como Hello, World, etc. El tercer patrón coincide con las cadenas que contienen solo números, como 123, 4567, etc. El patrón predeterminado coincide con cualquier cadena que no coincida con ninguno de los patrones anteriores.

Cuando se ejecuta el script, solicita al usuario que ingrese una cadena. La cadena se prueba con los diferentes patrones utilizando la declaración de caso. Si un patrón coincide, se muestra el mensaje correspondiente. Si ninguno de los patrones coincide, se muestra el mensaje predeterminado.

Conclusión

La declaración de caso en Bash es una alternativa poderosa y eficiente para usar múltiples declaraciones if-Then. Le permite probar una variable en una lista de valores posibles y ejecutar diferentes comandos basados ​​en el patrón de coincidencia. La declaración de caso es particularmente útil cuando desea procesar argumentos de línea de comandos o comparar una variable con una lista de valores posibles. Al usar la declaración de caso, puede escribir más conciso y legible