Comando de selección de bash

Comando de selección de bash
Seleccionar El comando se usa en scripts para la creación de menú. Se pueden implementar diferentes tipos de tareas de generación de menú con el seleccionar Comando, como: Crear lista de directores basados ​​en menú, crear un menú desde el contenido del archivo, etc. Cómo puede implementar este tipo de tareas utilizando bash seleccionar Los comando se muestran en este tutorial de indintos de Linux.

Sintaxis:

Seleccione V en data_list
hacer
Declaración 1
Declaración 2
Declaración3
hecho

Aquí, el elemento del menú se creará a partir de data_list que puede ser una matriz u otra fuente de datos. Cada elemento de menú recupera de Data_List y almacena en una variable para crear el menú. El comando 'Seleccionar' se puede usar con el comando 'Case' también para crear el menú. Diferentes tipos de tareas de creación de menú se muestran aquí usando ejemplos muy simples.

Ejemplo-1: Crear un menú simple

Crear un archivo bash llamado seleccionar1.mierda con el siguiente guión de Bash. Aquí, 'seleccionar' El comando recuperará cada datos de la lista e imprima los datos como un menú. El siguiente script contiene las marcas de los teléfonos móviles y después de ejecutar el script creará un menú de marcas móviles y le pedirá al usuario que elija cualquier marca. Imprimirá el nombre de la marca seleccionada. El usuario tiene que presionar Ctrl+C para terminar del guión.

#!/bin/bash
# Defina la lista de menú aquí
Seleccionar marca en Samsung Sony iPhone Symphony Walton
hacer
Echo "Has elegido $ marca"
hecho

Producción:

Ejecutar el guión.

$ bash select1.mierda

La siguiente salida aparecerá después de ejecutar el script y seleccionar el elemento del menú número 1 y 4.

Ejemplo-2: Seleccione el comando con una declaración de caso

En este ejemplo se muestra cómo puede crear un menú Bash con la instrucción de caso. Crear un archivo bash llamado seleccionar2.mierda con el siguiente guión de Bash. Después de ejecutar el script, el usuario seleccionará cualquier elemento de menú y la declaración de casos coincidirá con el valor seleccionado con el valor del caso. Aquí se utilizan múltiples valores de casos para que coincidan con el elemento de menú seleccionado. Si ninguno del valor de caso coincide con el elemento de menú seleccionado, entonces la "entrada no válida" se imprimirá.

#!/bin/bash
echo "¿Qué sistema operativo le gusta?"
# Los nombres del sistema operativo se utilizan aquí como fuente de datos
Seleccione el sistema operativo en Ubuntu LinuxMint Windows7 Windows7 Windowsxp
hacer
Caso $ OS en
# Dos valores de casos se declaran aquí para coincidir
"Ubuntu" | "LinuxMint")
Echo "También uso $ OS."
;;
# Tres valores de casos se declaran aquí para coincidir
"Windows8" | "Windows7" ​​| "Windows XP")
echo "¿Por qué no intentas Linux??"
;;
# Coincidir con datos no válidos
*)
Echo "Entrada inválida."
romper
;;
ESAC
hecho

Producción:
Ejecutar el guión.

$ bash select2.mierda

La salida diferente aparecerá para una selección diferente. Aquí, se selecciona la primera vez que es Ubuntu. coincidió con el valor de primer caso imprimir el mensaje "También uso Ubuntu". 4 se selecciona la próxima vez y el elemento del menú es Windows7 Pero no hay ningún valor de caso con este nombre. Entonces, esta vez se imprimió "Entrada invalida" y terminar del guión.

Ejemplo-3: Creación de menú Bash anidado

Cuando se crea cualquier menú en el menú del otro, se llama un menú anidado. El menú anidado se puede crear en la base utilizando dos o más declaraciones de selección y casos. Crear un archivo bash llamado seleccionar3.mierda con el siguiente guión de Bash. Aquí, se utilizan dos declaraciones selectas y de casos para implementar el menú anidado. El menú principal contiene 4 elementos y el submenú contiene 3 elementos aquí.

#!/bin/bash
mientras que es cierto
hacer
# Elementos del menú de los padres declarados aquí
Seleccione el elemento en el monitor de impresora del mouse HDD
hacer
# Declaración de casos para comparar los primeros elementos del menú
Caso $ Artículo en
Ratón)
echo "¿Qué tipo de monitor te gusta?"
;;
Impresora)
# Artículos submenú aquí declarados aquí
Seleccione Sub_item en Samsung HP Dell
hacer
# Declaración de casos para elementos de Sun-Menu
caso $ sub_item en
Samsung)
Echo "El precio de la impresora Samsung cuesta $ 100"
romper
;;
HP)
Echo "Nueva impresora de precio de impresora HP 880 cuesta $ 450"
# Regreso al menú de los padres
romper
;;
Dell)
Echo "No hay impresora Dell disponible ahora"
# Regreso al menú principal
romper 2
;;
ESAC
hecho
romper
;;
Monitor)
Echo "Compre nuestro nuevo Monitor Samsung a bajo costo"
Romper # Regresar al menú actual (principal)
;;
HDD)
Echo "HDD de buena calidad está disponible en el stock"
# Regreso del script
romper 2
ESAC
hecho
hecho

Producción:

Ejecutar el guión.

$ bash select3.mierda

Después de ejecutar el script, se muestra el menú principal con 4 elementos. Aquí, solo el segundo elemento de menú del menú principal contiene submenú. Después de seleccionar 2, apareció el submenú y cuando el usuario seleccionó 3, mostró el mensaje coincidente del elemento del menú 3 y regrese al menú principal.

Ejemplo-4: crea un menú bash con una matriz

Una variable de matriz puede almacenar múltiples datos. Por lo tanto, puede usar una matriz como lista de datos para crear un menú base. En este ejemplo se muestra cómo puede usar una matriz con una instrucción SELECT para crear un menú. Crear un archivo bash llamado seleccionar4.mierda con el siguiente guión de Bash. La subrutina bash se usa en este script para crear un menú desde la matriz. Se usa una matriz con tres elementos y menú_from_array () se llama para crear el menú. El script verificará el número de elemento del menú seleccionado es entre 1-3 o no. Si el número no está dentro de este rango, le instruirá al usuario seleccionarlo dentro de este rango, imprimirá el elemento de menú seleccionar con otro texto.

#!/bin/bash
menú_from_array ()

seleccione un artículo; hacer
# Verifique el número de elemento del menú seleccionado
if [1 -le "$ respuesta"] && ["$ respuesta" -le $#];
entonces
echo "El sistema operativo seleccionado es $ ítem"
romper;
demás
echo "Selección incorrecta: seleccione cualquier número de 1-$#"
FI
hecho

# Declarar la matriz
Linux = ('Ubuntu' 'Linux Mint' 'CentOS')
# Llame a la subrutina para crear el menú
menú_from_array "$ linux [@]"

Producción:

Ejecutar el guión.

$ bash select4.mierda

Aquí, 2 se selecciona primero que está dentro del rango e imprime el texto. 6 se selecciona la segunda vez que está fuera de alcance y sugiere que el usuario seleccione un número dentro del rango.


Para comprender este código, deberíamos aprender algunos trucos 😉

  • Porque el en La lista no se proporciona en los parámetros posicionales seleccionados que se utilizan que son en este caso las palabras en la matriz pasadas a la función
  • $ Respuesta almacena la entrada de valor del usuario
  • El if y condicional lógico en la función verifican la respuesta es entre 1 y el tamaño de la matriz de parámetros posicionales

Conclusión

La tarea de creación de menú bash mediante el uso de una instrucción seleccionar se explica en este tutorial lo más simple posible. Hay muchas formas simples y elegantes de usar Select in Bash al crear menús y esperamos que estos ejemplos le den un punto de partida para crear sus propias combinaciones.