我试图表明,如果你输入月份的东西,它会显示月份
例如january=1
,february=2
,march=3
...
和年2012
,2013
,2014
...
但如果您输入的内容大于12
,那么它应该告诉您"sorry"
,我无法弄清楚如何使消息有效。
echo " please type a number for a month"
read month
echo " please type a number for a year"
read year
if [ "$month" = "1-12" ]
then
cal "$month" "$year"
sleep 2
echo " thank you, good bye... "
else
echo " sorry "
sleep 2
fi
答案 0 :(得分:1)
if [[ $month -lt 13 && $month -gt 0 ]]
then
cal "$month" "$year"
sleep 2
echo " thank you, good bye... "
else
echo " sorry "
sleep 2
fi
答案 1 :(得分:1)
允许cal验证输入的完整性更安全。
cal $month $year 2>/dev/null
if [ $? -ne 0 ]; then
echo sorry
fi
这将处理非整数的输入。
答案 2 :(得分:1)
怎么样
read -r -p 'please type a number for a month: ' month
read -r -p 'please type a number for a year: ' year
cal "$month" "$year" 2&>1 1>/dev/null && \
{ cal "$month" "$year" ; echo ' thank you, good bye... ' ; } || \
echo ' sorry '
答案 3 :(得分:0)
要测试该值,只需使用逻辑和两个算术条件:
if (( month >= 1 )) && (( month <= 12 )) ; then
cal $month $year
else
echo Sorry.
fi