#!/bin/bash
2 read -p "请输入你生日的月份:" BMON
3 read -p "请输入你生日的日期: " BDAY
4 BYEAR=`date +%Y`
5 BIRTHDAY=`date -d ${BYEAR}${BMON}${BDAY} +%j 2>/dev/null`
6 NOWDAY=`date +%j`
7 REMAIN=$(($BIRTHDAY-$NOWDAY))
8 echo -e "目前距离你生日还剩下:\033[5m${REMAIN}\033[0m 天"
我输入03 31 就提示数值太大不可为算数进制的基
数值计算提示数值太大不可为算数进制的基
-
- 帖子: 13
- 注册时间: 2015-01-28 11:09
- 系统: ubuntu14.04
- astolia
- 论坛版主
- 帖子: 6703
- 注册时间: 2008-09-18 13:11
Re: 数值计算提示数值太大不可为算数进制的基
date -d 20150331 +%j的结果是090。$(())会把以0开头的数字当成8进制数,而090显然是个错误的8进制数
你需要在计算前手动把数字前面的0去掉。
date xxx +%j | sed -r 's/^0+//'
你需要在计算前手动把数字前面的0去掉。
date xxx +%j | sed -r 's/^0+//'