저는 bash 스크립트를 사용한 프로그래밍이 처음입니다. 내 문제는 다음과 같습니다. 파일 이름에 날짜(형식: )가 포함된 데이터 유형을 열고 싶습니다 file_yyyymmddhh.nc
. 몇 가지 요구 사항이 있습니다.
mm
01부터 12까지. 두 자리 정수여야 합니다.dd
달에 따라 01부터 28, 30 또는 31까지.
이 문제를 해결하기 위해 if 구조와 루프를 사용해 보았습니다. 비슷한 것을 사용하여 ${dd}
파일 이름에 적용할 수 있다는 것을 알고 있습니다 .
if [${mm} == 01] ; then
for ((i=1; i<=31; i=i+1))
do
${dd}=i
done
fi
${dd}
그런데 특히 2자리 정수로 지정하는 방법을 모르겠습니다 ${dd} <= 9
. 위 코드를 수정할 수 있는 방법이 있습니까?
답변1
printf
이를 사용하여 숫자 형식을 지정할 수 있습니다 . 이는 %02d
해당되는 경우 앞에 0이 붙는 두 자리 정수를 나타냅니다.
dd=$(printf "%02d" $i)
$y
, $m
, $d
및 $h
연도, 월, 일 및 시간 숫자가 포함된 경우 구성이 다음과 같이 될 수 있도록 이를 확장할 수 있습니다.
file=$(printf "file_%04d%02d%02d%02d.nc" $y $m $d $h)
우리가 진행하는 동안 귀하의 구성이 ${dd}=i
올바르지 않습니다. 이 $
기호는 변수 이름 앞에 접두사를 추가하여 해당 변수의 값(귀하의 경우 i
변수와 $i
해당 값과 동일)을 가져옵니다. 따라서 귀하의 경우에는 다음과 같이 작성합니다 dd=$i
.