在bash脚本中显示数字的月份

时间:2013-03-15 23:35:46

标签: linux bash shell unix

我试图表明,如果你输入月份的东西,它会显示月份 例如january=1february=2march=3 ...

和年201220132014 ...

但如果您输入的内容大于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

4 个答案:

答案 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 '
  • 读取可以提示你,不需要回声
  • cal return status告诉您它是否正常工作

答案 3 :(得分:0)

要测试该值,只需使用逻辑和两个算术条件:

if (( month >= 1 )) && (( month <= 12 )) ; then
    cal $month $year
else
    echo Sorry.
fi