我需要一些帮助。我用我的日期来操纵我的编程。 日期格式为DD-MON-YY,如果用户输入正确的日期格式,我想检查它。所以,我创建了一个测试功能,测试日期,月份和分别一年,但功能也可以参考“ - ”格式,所以我决定使用此代码:剪切并保存Shell脚本
echo -n " Date [ DD-MON-YY ]:" #user will input the date
read dates
vardate=$ echo "$dates" | tr "-" " "
echo $vardate
我用的就是这样就会有当我调用函数时,对“ - ”字符没有问题。 但现在的问题是如何保存日期[日,月,年]的3个部分?所以我的功能可以正确评估它。
我的功能:
datefxn(){
d1 = $date1
d2 = $month1
d3 = $year1
########## check the DAY #####################
test ${#d1} -eq 2 || s=" INVALID!"
if [ "$d1" -gt 0 ] && [ "$d1" -le 31 ]
then
break ;;
else
echo "Month is OUT OF RANGE!"
fi
########## check the DAY #####################
test ${#d2} -eq 3 || s=" INVALID!"
MONTH=(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
echo "${MONTH[@]}"
for element in "${MONTH[@]}"
do
if [[ $element == $d2 ]]
then
echo " a "
break
else
echo " WAAA "
fi
done
########## check the YEAR #####################
test ${#d3} -eq 2 || s=" INVALID!"
} #end datefxn()
什么是你的错误信息?请注意,在变量赋值中,'='周围不能有空格。并删除';;' - 仅用于'case',不用于'if'。 – Jens
@Jens,哦,是的。对不起,我忘了改变这条线。但是我的问题不在这个部分,我的问题在代码的第一部分。行号3和4.'vardate = $ echo“$日期”| tr“ - ”“” echo $ vardate'我如何将日期的修剪部分保存到3个不同的变量? – ms061210