我想询问是否有办法验证传递的变量是否采用这种样本格式“06-10”或“10-01”。关于如何开始和技术的“6-10”代表“6月10日”和“10-01”代表“10月1日”对我来说真是一个挑战,整体而言它需要像“月 - 日” “数字格式有效。我想有一个if-then语句来验证传递的变量是否正确,如下所示:
#!/bin/bash
# This script will ONLY accept two parameters in number format
# according to "MM-DD" which is "XX-XX"
# To run this script: ./script.sh xx-xx xx-xx
DATE1=$1
DATE2=$2
if [DATE1 is in correct format] && [DATE2 is in correct format]
then
echo "Correct format"
echo "DATE1 = $DATE1"
echo "DATE2 = $DATE2"
else
echo "Not correct format"
exit 1
fi
答案 0 :(得分:0)
if语句如下所示:
if [[ $DATE1 =~ ^[0-9]{1,2}-[0-9]{1,2}$ ]] && [[ $DATE2 =~ ^[0-9]{1,2}-[0-9]{1,2}$ ]]
检查日期是否具有字符串格式##-##
。
答案 1 :(得分:0)
使用this替换if语句上的正则表达式:
^(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$