Shell REGEX的日期

swa*_*wag 3 regex bash shell date

我试图修改用户输入,如果他们输入不正确的日期格式(YYYY-MM-DD),但我无法弄明白.这是我有的:

while [ "$startDate" != "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" ]
do
  echo "Please retype the start date (YYYY-MM-DD):"
  read startDate
done
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 5

而不是!=,您必须使用! $var =~ regex执行正则表达式比较:

[[ $date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]
         ^^
Run Code Online (Sandbox Code Playgroud)

这样你的脚本就像这样:

date=""
while [[ ! $date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; do
    echo "enter date (YYYY-MM-DD)"
    read $date
done
Run Code Online (Sandbox Code Playgroud)