我正在尝试编写一个脚本,以便检查用户是否输入了有效的电话号码,然后检查records.txt
文件。
我有以下代码。然而,当我输入一个电话号码时,它无法识别。
我也不知道如何实现对文本文件的检查?
echo "Enter a phone number as XXXXXXXX: "
read phoneNumber
while [ "$phoneNumber" != [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]
do
echo "Please enter a phone number as XXXXXXXX: "
read phoneNumber
done
echo $$phoneNumber
pause
如果您想验证8位数的电话号码,则需要在正则表达式中包含起始和结束锚,否则,它将接受超过8位数的号码。
#!/bin/bash
echo "Enter a phone number as XXXXXXXX: "
read phoneNumber
pat="^[0-9]{8}$"
while [[ ! $phoneNumber =~ $pat ]]
do
echo "Please enter a phone number as XXXXXXXX: "
read phoneNumber
done
echo $phoneNumber
将正则表达式放入一个变量中,如:pat="[0-9]{8}"
。
短语{8}
表示前一个字符集的8个重复。
在这种情况下,"上一个字符集"是[0-9]
范围内的任何字符。
然后使用您创建的两个变量编写while
条件:
while [[ ! $phoneNumber =~ $pat ]]
请注意在开头添加了!
,以否定括号中的表达式。
当计算这样的正则表达式时,我们使用双方括号[[ expression ]]
和=~
来测试匹配。