在 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 中进行日期算术。也许使用“日期”。