Si desea una entrada que contenga solo caracteres alfanuméricos, es decir, 1-9 o az minúsculas, así como caracteres en mayúsculas, podemos utilizar una expresión regular o Regex en resumen en un Shell Script para verificar la entrada.
Ejemplo:
Input: Geeksforgeeks Output: True Explanation: Here all the inputted data are alphanumeric Input: Geeks@for@geeks Output: False Explanation: @ is not alphanumeric
Aquí nuestra tarea es escribir un script para tomar entradas de una variable, y verifica que la string de entrada de principio a fin tenga solo números o letras (en minúsculas o mayúsculas). Si hay otros caracteres especiales, la condición en el ciclo while se evaluará como falsa y, por lo tanto, el ciclo while se ejecutará, y vuelve a ingresar la variable, y luego nuevamente verifica la condición del ciclo while de los caracteres alfanuméricos. El ciclo continuará hasta que el usuario ingrese solo una string o número alfanumérico y no vacío. \
#!/bin/bash # Input from user read -p "Input : " inp # While loop for alphanumeric characters and a non-zero length input while [[ "$inp" =~ [^a-zA-Z0-9] || -z "$inp" ]] do echo "The input contains special characters." echo "Input only alphanumeric characters." # Input from user read -p "Input : " inp #loop until the user enters only alphanumeric characters. done echo "Successful Input"
Producción:
Se ejecuta la siguiente captura de pantalla del caso de prueba del código y solo acepta entradas alfanuméricas no vacías. Incluso rechaza una entrada vacía y otros caracteres excluyendo alfabetos y números. El siguiente código es una expresión regular para verificar números o letras desde el inicio (^) hasta el final ($) y una condición de entrada vacía (-z representa la longitud de cero). Por lo tanto, el script de shell le preguntará al usuario una y otra vez hasta que ingrese un carácter alfanumérico.