Bash脚本接受有效数字格式

时间:2018-05-24 12:03:50

标签: bash if-statement

我想询问是否有办法验证传递的变量是否采用这种样本格式“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

2 个答案:

答案 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])$