shell脚本将默认数字设置为两位数零作为前缀

shell脚本将默认数字设置为两位数零作为前缀

在 shell 脚本中,我正在处理,一些加法过程将打印输出。如果是一位数,则必须添加零作为前缀。

这是我当前的脚本:

c_year=2020
for i in {01..11}
        do  
            n_year=2020
            echo 'Next Year:'$n_year
            if [[ $i == 11 ]]
            then n_month=12
            echo 'Next Month:'$n_month
            else 
            n_month=$(($i + 1))
            echo 'Next Month:'$n_month
            fi
            echo $date" : Processing data '$c_year-$i-01 00:00:00' and '$n_year-$n_month-01 00:00:00'"
        done

i值是双位数,但n_month仍打印单位数。如何设置默认 shell 输出应返回两位数?

或者有什么替代方法可以解决这个问题?

答案1

#! /usr/bin/ksh

typeset -Z2 n_month

c_year=2020
for i in {01..11}
        do
            n_year=2020
            echo 'Next Year:'$n_year
            if [[ $i == 11 ]]
            then n_month=12
            echo 'Next Month:'$n_month
            else
            n_month=$(($i + 1))
            echo 'Next Month:'$n_month
            fi
            echo $date" : Processing data '$c_year-$i-01 00:00:00' and '$n_year-$n_month-01 00:00:00'"
        done

但如果我没记错的话,有更好的方法可以在 shell 中进行日期算术。也许使用“日期”。

相关内容