luk*_*x22 7 validation bash date
所以我试图在bash中编写一个简单的脚本,用以下格式(YYYY-dd-mm)询问用户输入日期.不幸的是,我第一步陷入困境,即验证输入的格式是否正确.我尝试使用'日期'没有运气(因为它返回实际当前日期).我想尽可能简化这个.谢谢您的帮助!
Ale*_*-A. 29
使用正则表达式:
if [[ $date =~ ^[0-9]{4}-[0-3][0-9]-[0-1][0-9]$ ]]; then
Run Code Online (Sandbox Code Playgroud)
或者使用bash globs:
if [[ $date == [0-9][0-9][0-9][0-9]-[0-3][0-9]-[0-1][0-9] ]]; then
Run Code Online (Sandbox Code Playgroud)
请注意,此正则表达式将接受日期9999-00-19
不正确的日期.因此,在使用此正则表达式检查其可能的正确性之后,您应该验证数字是否正确.
IFS='-' read -r year day month <<< "$date"
Run Code Online (Sandbox Code Playgroud)
这将把数字放入$year
$day
和$month
变量.