使用正则表达式模式验证bash中的用户馈送时间

时间:2014-02-17 06:06:19

标签: regex bash shell time-format

假设用户有时间:

read -p "Enter the start time you want to start(hh:mm:ss) " user_start_time

和正则表达式:

timePattern="[0-2][0-3]:[0-5][0-9]:[0-5][0-9]"

如果我这样做:

if [ "$user_start_time" == "$timePattern" ] 
#or if [ "$user_start_time" =~ "$timePattern" ]
then
         echo "in if"
else
         echo "in else"
fi

它没有验证.....作为新手,我理解intstring的比较,但我们如何处理time日期也在那里,但date -d解决了很多问题

There is this question too 但无法理解接受的答案!!

1 个答案:

答案 0 :(得分:2)

对于正则表达式匹配,您需要在BASH中使用=~运算符而不是==。所以像这样使用它:

[[ "$user_start_time" =~ $timePattern ]] && echo "in if" || echo "in else"

您还需要删除正则表达式变量$timePattern

周围的引号