기본 숫자를 접두사로 두 자리 0으로 설정하는 쉘 스크립트

기본 숫자를 접두사로 두 자리 0으로 설정하는 쉘 스크립트

처리 중인 쉘 스크립트에서 일부 추가 프로세스가 출력을 인쇄합니다. 한 자리 숫자인 경우 접두사로 0을 추가해야 합니다.

이것은 내 현재 스크립트입니다.

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여전히 한 자리가 인쇄됩니다. 기본 쉘 출력을 설정하는 방법은 두 자리 숫자를 반환해야 합니까?

아니면 이 문제를 해결할 수 있는 다른 방법이 있습니까?

답변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

하지만 내 기억이 정확하다면 셸에서 날짜 산술을 수행하는 더 좋은 방법이 있습니다. 아마도 "날짜"를 사용할 수도 있습니다.

관련 정보