【发布时间】:2015-04-11 05:25:34
【问题描述】:
所以我的脚本必须计算某人旅行回来的日期。用于使用用户输入计算离开日期和行程长度。每天都有一定的数字,比如 Monday-1;周二至 2 等,但当用户输入周日必须为 0 时会变得复杂。
脚本 atm 我所做的:
#!/bin/bash
#Data
echo -e "\e[00;31mRemember!\e[00m Sunday-0; Monday-1; Tuesday-2; Wednesday-3; Thursday-4; Friday-5; Saturday-6;"
echo
echo -n "What day will you leave? "
read left
echo -n "How long is your trip? "
read days
#Calculating
cb=`echo "$left+$days" | bc`
comeback=`echo "$cb % 6" | bc`
#Output
if [ $comeback = 0 ]; then
echo "You will be back at Sunday"
fi
if [ $comeback = 1 ]; then
echo "You will be back at Monday"
fi
if [ $comeback = 2 ]; then
echo "You will be back at Tuesday"
fi
if [ $comeback = 3 ]; then
echo "You will be back at Wednesday"
fi
if [ $comeback = 4 ]; then
echo "You will be back at Thursday"
fi
if [ $comeback = 5 ]; then
echo "You will be back at Friday"
fi
if [ $comeback = 6 ]; then
echo "You will be back at Saturday"
fi
我的问题是,当旅行超过一周或应该在周日结束时,它永远不会计算正确。 当我开始像 Sunday-1 那样数数时,我的脚本就开始工作了;周一到 2 等,但周日必须为 0。
【问题讨论】:
-
你应该取模 7 而不是 6。每周有 7 天。
-
comeback=$(( (${left} + ${days}) % 7 ))