如何检查bash中字符串是否包含数字,字母,字符

时间:2020-01-09 10:37:38  来源:igfitidea点击:

bash检查字符串是否包含数字。 bash检查字符串包含字母。 bash检查字符串是否包含特殊字符。 bash检查字符串是否以字符开头。 bash比较字符串。 Shell脚本测试变量为数字。检查字符串仅包含数字。用于检查字符是元音还是辅音的shell脚本。用于检查字符串是否包含元音的shell脚本。 bash检查字符串是否以字符开头。 bash检查字符串是否以字符结尾。 shell脚本,用于检查字符是字母数字还是特殊字符。 bash检查字符串是否包含元音。 bash检查字符串是否以字符开头。 bash shell脚本,用于检查字符串是否包含数字。 shell脚本,用于检查字符串是否仅包含数字。 shell脚本,用于检查字符串是否包含特殊字符。

比较Bash中的字符串

1.检查字符串是否包含数字

假设我们想比较字符串并检查字符串是否包含数字。现在,此变量也可以包含字符,字母,但是最重要的是,我们希望检查字符串是否包含数字。在脚本中使用以下语法比较字符串并检查字符串是否包含数字。

$VAR =~ [0-9]

我将用脚本将其框起来

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ $VAR =~ [0-9] ]];then
      echo "Input contains number"
   else
      echo "Input contains non numerical value"
   fi
done

现在,让我们执行脚本,正如我们所观察到的,脚本能够区分数值和非数值

# /tmp/script.sh
Enter a string: test
Input contains non numerical value
Enter a string: test1234
Input contains number
Enter a string: test@123
Input contains number
Enter a string: testing
Input contains non numerical value

2.检查字符串是否仅包含数字

假设我们希望比较字符串并检查字符串是否仅包含数字。现在,在上面的例子中,字符串可以同时包含字母和字母。尝试在脚本中使用以下语法比较字符串,并检查字符串是否仅包含数字

$VAR =~ ^[0-9]+$

或者

$VAR =~ ^[[:digit:]]+$

我将在脚本中构建框架以测试多个值

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ $VAR =~ ^[0-9]+$]];then
      echo "Input contains number"
   else
      echo "Input contains non numerical value"
   fi
done

现在,让我们执行脚本以比较字符串,就像我们看到的那样,脚本能够区分数值和非数值,因此我们能够成功地检查字符串是否仅包含数字。

# /tmp/script.sh
Enter a string: test
Input contains non numerical value
Enter a string: 1234
Input contains number
Enter a string: test1234
Input contains non numerical value
Enter a string: 012
Input contains number

3.检查字符串是否仅包含字母和数字

要比较字符串并检查字符串是否仅包含字母和数字,可以使用以下语法之一。

$VAR =~ ^[[:alnum:]]+$

或者

$VAR =~ ^[0-9a-zA-Z]+$

让我在脚本中对其进行构架,我将仅演示一种语法,但是两种语法都应该对我们有用

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ $VAR =~ ^[[:alnum:]]+$]];then
      echo "OK: Contains alphabets and numbers"
   else
      echo "NOK: Contains special character"
   fi
done

执行脚本。如我们所见,我们能够区分带有字母和数字而没有字母和数字的字符串

# /tmp/script.sh
Enter a string: 123
OK: Contains alphabets and numbers
Enter a string: abc123
OK: Contains alphabets and numbers
Enter a string: abc@123
NOK: Contains special character
Enter a string: abc.123
NOK: Contains special character

4.检查字符串是否以字符开头

其中:让我向我们展示一个示例,比较字符串以检查字符串是否以特定字符或者单词开头。现在假设我希望确保变量或者字符串以字符" A"开头。尝试使用以下语法检查字符串是否以字符" A"开头

$VAR =~ ^[A]

我将在脚本中构建框架以测试多个值

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ $VAR =~ ^[A] ]];then
      echo "Input starts with A"
   else
      echo "Input does not starts with A"
   fi
done

现在,让我们执行脚本,如我们所见,脚本能够检查字符串是否以字符" A"开头。

# /tmp/script.sh
Enter a string: Test
Input does not starts with A
Enter a string: Apple
Input starts with A
Enter a string: apple
Input does not starts with A
Enter a string: Ball
Input does not starts with A

同样,我们可以修改逻辑以检查其他字母或者字符。例如,要检查小写字母和大写字母,请使用以下语法

$VAR =~ ^[aA]

5.检查字符串是否包含特殊字符

要比较字符串并检查字符串是否包含特殊字符,有两种方法。我们或者将模式与所有可用的特殊字符匹配,或者相反。我们有一种逻辑检查字符串是否仅包含字母和数字,我们使用该模式并将其反转以了解并检查字符串是否包含特殊字符。

$VAR == *['!'@#$%^\&*()_+]*

或者

! $VAR =~ ^[[:alnum:]]+$

让我们在脚本中构建此模式

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ ! $VAR =~ ^[[:alnum:]]+$]];then
      echo "contains special character"
   else
      echo "does not contains special character"
   fi
done

现在,如果我们执行脚本以检查字符串是否包含特殊字符,则可以观察到该脚本能够告诉我们带或者不带特殊字符的字符串。

# /tmp/script.sh
Enter a string: test123
does not contains special character
Enter a string: 12345
does not contains special character
Enter a string: test
does not contains special character
Enter a string: test3
contains special character
Enter a string: test%123
contains special character
Enter a string: test.123
contains special character

6.检查字符串中是否包含元音

现在比较字符串并检查字符串是否包含元音,我们可以使用以下模式。其中:我们定义了模式中的所有元音,以检查字符串是否包含元音。

$VAR =~ [AEIOUaeiou]

让我们把它放在脚本中

#!/bin/bash
while true; do
   read -r -p "Enter a string: " VAR
   if [[ $VAR =~ [AEIOUaeiou] ]];then
      echo "OK: Contains vowels"
   else
      echo "NOK: No vowels found"
   fi
done

执行脚本以验证功能,以及我们的脚本是否能够检查字符串是否包含元音。如我们所见,我们的脚本能够识别并检查字符串是否包含元音或者仅包含辅音。

# /tmp/script.sh
Enter a string: Apple
OK: Contains vowels
Enter a string: Bat
OK: Contains vowels
Enter a string: Test
OK: Contains vowels
Enter a string: Myth
NOK: No vowels found
Enter a string: Witch
OK: Contains vowels
Enter a string: Cry
NOK: No vowels found
Enter a string: Sky
NOK: No vowels found