尝试编写一个倒计时的脚本却遇到点小问题
发表于 : 2017-08-09 0:18
#!/bin/bash
#Postgraduate countdown for Jessie
PATH=/bin:/sbin:/usr/bin:usr/sbin:usr/local/bin:usr/local/sbin:~/bin
export PATH
echo "This timer will try to calculate: "
echo "How many days before your postgraduate entrance examination."
read -p "Please input your examination date (YYYYMMDD ex>20170101): " dateshuru
datetianshu=$(echo $dateshuru | grep '[0-9]\{8\}')
if [ "datetianshu" == "" ];then
echo "You input the wrong date format."
exit 1
fi
declare -i datezuihou=`date --date="$dateshuru" +%s`
declare -i datexianzai=`date +%s`
declare -i datezonggong=$(($datezuihou-$datexianzai))
declare -i datetianshu=$(($datezonggong/60/60/24))
if [ "$datezonggong" -lt "0" ];then
echo "You had been examination before "$((-l*$datezonggong))" days ago"
else
declare -i datexiaoshi=$(($(($datezonggong-$datetianshu*60*60*24))/60/60))
echo "You will postgraduate after $datetianshu days and $datexiaoshi hours."
我输入20171224没问题,可以显示出时间,可是如果我输入过去的时间,它老是显示
Please input your examination date (YYYYMMDD ex>20170101): 20170805
You had been examination before 0 days ago
按道理来说不应该老是0天啊~
哪位大神可以帮忙看下哪儿出问题了吗?我是参考着一个范本做的,对“$((-l*$datezonggong))”还不是很理解,尤其是里面“-l*”这个写法没弄明白,还望大神多多指教。
#Postgraduate countdown for Jessie
PATH=/bin:/sbin:/usr/bin:usr/sbin:usr/local/bin:usr/local/sbin:~/bin
export PATH
echo "This timer will try to calculate: "
echo "How many days before your postgraduate entrance examination."
read -p "Please input your examination date (YYYYMMDD ex>20170101): " dateshuru
datetianshu=$(echo $dateshuru | grep '[0-9]\{8\}')
if [ "datetianshu" == "" ];then
echo "You input the wrong date format."
exit 1
fi
declare -i datezuihou=`date --date="$dateshuru" +%s`
declare -i datexianzai=`date +%s`
declare -i datezonggong=$(($datezuihou-$datexianzai))
declare -i datetianshu=$(($datezonggong/60/60/24))
if [ "$datezonggong" -lt "0" ];then
echo "You had been examination before "$((-l*$datezonggong))" days ago"
else
declare -i datexiaoshi=$(($(($datezonggong-$datetianshu*60*60*24))/60/60))
echo "You will postgraduate after $datetianshu days and $datexiaoshi hours."
我输入20171224没问题,可以显示出时间,可是如果我输入过去的时间,它老是显示
Please input your examination date (YYYYMMDD ex>20170101): 20170805
You had been examination before 0 days ago
按道理来说不应该老是0天啊~
哪位大神可以帮忙看下哪儿出问题了吗?我是参考着一个范本做的,对“$((-l*$datezonggong))”还不是很理解,尤其是里面“-l*”这个写法没弄明白,还望大神多多指教。