📌  相关文章
📜  用于检查输入是否仅包含字母数字字符的Shell 脚本

📅  最后修改于: 2022-05-13 01:57:33.589000             🧑  作者: Mango

用于检查输入是否仅包含字母数字字符的Shell 脚本

如果您想要一个仅包含字母数字字符的输入,即 1-9 或 az 小写和大写字符,我们可以在 Shell 脚本中使用正则表达式或简称 Regex 来验证输入。

例子:

Input: Geeksforgeeks
Output: True

Explanation: Here all the inputted data are alphanumeric

Input: Geeks@for@geeks
Output: False

Explanation: @ is not alphanumeric

这里我们的任务是编写一个脚本来输入一个变量,它检查输入字符串从头到尾只有数字或字母(小写或大写)。如果有任何其他特殊字符,while 循环中的条件将评估为 false,因此将执行 while 循环,并再次输入变量,然后再次检查字母数字字符的 while 循环条件。循环将继续,直到用户仅输入字母数字和非空字符串或数字。 \

#!/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"

输出:

Bash 脚本输出

下面的代码测试用例截图被执行,它只接受非空的字母数字输入。它甚至拒绝空输入和不包括字母和数字的其他字符。以下代码是一个正则表达式,用于检查从 start(^) 到 end($) 的数字或字母以及空输入条件(-z 代表零长度)。因此,shell 脚本会一次又一次地提示用户,直到他/她输入一个字母数字字符。