IT/OS

[Linux/Unix] Shell Script에서 날짜/시간 변수 사용하기

wookiist 2021. 3. 22. 10:04

Date Format

리눅스 또는 유닉스 계열에서 날짜를 표시하는 문법은 다음과 같습니다.

date +FORMAT
date +"%FORMAT"
date +"%FORMAT%FORMAT"
date +"%FORMAT-%FORMAT"

위 문법에서 + 기호는 이 문법이 사용자가 정의한 형식을 따르고 있음을 나타냅니다. 또한 중간에 들어간 -도 사용자가 원하는 문자로 변환하여 사용할 수 있습니다.

만약 출력의 형식이 연&월&일 의 형태라면 - 대신 &를 넣어 포매팅할 수 있는 구조입니다.

yy-mm-dd 형식으로 출력하기

터미널을 열어서 다음 명령을 입력해봅시다.

$ date +"%y-%m-%d"

출력은 이렇습니다.

21-03-22

만약 연도 데이터를 4자리로 출력하고 싶다면 %y%Y로 치환해주면 됩니다.

$ date +"%Y-%m-%d"

위 명령의 출력은 다음과 같습니다.

2021-03-22

또는 %D 하나의 포맷 스트링을 이용해 m/d/y 의 형태로 출력하는 방법도 있습니다.

$ date +"%D"

출력은 다음과 같습니다.

03/22/21

시각만 출력하기

이번 단락에서는 현재 시각을 출력하는 방법을 알아보겠습니다. 크게 24시간제12시간제로 표기할 수 있습니다.

24시간제

24시간제로 나타내려면 %T 포맷을 사용합니다.

$ date +"%T"

출력은 아래와 같습니다.

13:00:01

12시간제

12시간제로 나타내려면 %r 포맷을 사용합니다.

$ date +"%r"

출력은 아래와 같습니다.

01:00:05 PM

하나하나 분리해서 나타내기

시/분/초를 하나하나 분리해서 나타내는 포맷은 다음과 같습니다.

$ date +"%H-%M-%S"

출력은 아래와 같습니다.

01-00-11

Shell 변수에 time/date 포맷을 저장하기

Shell 변수에 time/date 포맷을 저장하는 방법은 매우 간단합니다. 이전 단락에서 이용한 포맷을 $로 묶어 변수에 할당해주기만 하면 됩니다.

DATE=$(date +"%Y%m%d")
FILE="file-$DATE.md"
echo "Backing up data to /mnt/data/$FILE file, please wait..."
# 이하 생략

마무리

여기까지 읽어주셔서 감사합니다. 만약 이 글이 도움이 되셨다면 글 좌측 하단의 하트❤를 눌러주시면 감사하겠습니다.

혹시라도 글에 이상이 있거나, 이해가 가지 않으시는 부분, 또는 추가적으로 궁금하신 내용이 있다면 주저 마시고 댓글💬을 남겨주세요! 빠른 시간 안에 답변을 드리겠습니다 😊

참고

반응형