Bash if语句具有多个变量

时间:2020-02-10 16:45:38

标签: bash if-statement

您好,我正在尝试制作一个简单的bash脚本,并且对它来说很新。

使用if语句,我试图像时钟一样向上计数。

因此,输出将为例如16:59:58、16:59:59、17:00:00

秒和分钟有效,但是第一个if语句不起作用。

当到达23:59:59时,它原本应该转到00:00:00,但是它原本是24:60:00

有帮助吗?

if [[ "$hours" -eq 23 && "$minutes" -eq 60 && "$seconds" -eq 60 ]]
then
    seconds=0
    minutes=0
    hours=0
    ((date++))
else
    if [[ "$minutes" -eq 60 ]]
    then
        minutes=00
        ((hours++))
    else
        if [[ "$seconds" -eq 60 ]]
        then
            seconds=00
            ((minutes++))
        fi
    fi
fi

1 个答案:

答案 0 :(得分:1)

从最低顺序的字段开始,而不是测试所有变量。

((seconds++))
if [[ $seconds -eq 60 ]]
then 
    seconds=0
    ((minutes++))
fi
if [[ $minutes -eq 60 ]]
then
    minutes=0
    ((hours++))
fi
if [[ $hours -eq 24 ]]
then
    hours=0
    ((date++))
fi