개발을 하다 보면, 특정 날짜를 기준으로 미래의 날짜를 계산해야 할 때가 있습니다. 특히 등록일로부터 2년 뒤의 날짜를 계산하고 싶다면, 우분투의 date 명령어를 사용해 쉽게 해결할 수 있습니다. 이번 글에서는 date 명령어를 사용하여 현재 날짜로부터 2년 뒤의 날짜를 계산하고, 그 결과를 YYYY-MM-DD 형식으로 출력하는 방법을 알아보겠습니다.
스크립트 예제
아래는 스크립트를 실행한 날짜를 등록일로 설정하고, 그로부터 2년 뒤의 날짜를 계산하는 간단한 스크립트입니다.
#!/bin/bash
# 스크립트를 실행한 날짜를 등록일로 설정합니다
registration_date=$(date +"%Y-%m-%d")
# 등록일로부터 2년 뒤의 날짜를 계산합니다
future_date=$(date -d "$registration_date + 2 years" +"%Y-%m-%d")
# 계산된 날짜를 출력합니다
echo "Registration date: $registration_date"
echo "2 years after the registration date: $future_date"
스크립트 실행 방법
1. 이 스크립트를 vi 편집기에서 작성하세요:
vi calculate_future_date.sh
2. vi 편집기에서 스크립트 예제 코드를 붙여넣기해 파일을 저장하고 종료합니다.
3. 스크립트에 실행 권한을 부여합니다:
chmod +x calculate_future_date.sh
4. 스크립트를 실행합니다:
./calculate_future_date.sh
이 스크립트를 실행하면 현재 날짜가 등록일로 설정되고, 그로부터 2년 뒤의 날짜가 계산되어 출력됩니다.
date 명령어와 옵션 설명
이 스크립트에서 가장 중요한 부분은 date 명령어입니다. date는 우분투에서 현재 날짜와 시간을 출력하거나, 날짜 계산을 할 때 사용하는 도구입니다.
date -d "$registration_date + 2 years" +"%Y-%m-%d"
위 명령어는 현재 날짜를 기준으로 2년 뒤의 날짜를 계산하고, 그 결과를 YYYY-MM-DD 형식으로 출력하는 역할을 합니다. 이제 이 명령어의 각 부분을 쉽게 설명해 드릴게요.
1. date
- date는 날짜와 시간을 출력하거나 조작하는 명령어입니다.
- 특별한 옵션 없이 사용하면 현재 시스템의 날짜와 시간을 출력합니다.
2. -d
- -d는 "date string"의 약자로, 특정 날짜를 입력받아 그 날짜를 기준으로 계산할 때 사용됩니다.
- 이 옵션을 통해 기본 시스템 날짜가 아니라, 사용자가 입력한 날짜로부터 계산할 수 있습니다.
3. "$registration_date + 2 years"
- **"$registration_date"**는 등록일을 나타내는 변수입니다. 여기서는 스크립트 실행 날짜를 등록일로 사용하고 있습니다.
- **+ 2 years**는 등록일로부터 2년 뒤를 계산하라는 의미입니다.
- 이 부분을 다른 값으로 변경하면 다른 기간을 계산할 수 있습니다. 예를 들어:
- + 3 months: 3개월 뒤의 날짜
- - 5 days: 5일 전의 날짜
- + 1 week: 1주일 뒤의 날짜
- 이 부분을 다른 값으로 변경하면 다른 기간을 계산할 수 있습니다. 예를 들어:
4. +"%Y-%m-%d"
- 이 부분은 출력할 날짜의 형식을 지정합니다.
- %Y: 4자리 연도의 형식 (예: 2024)
- %m: 2자리 월의 형식 (예: 10월은 10)
- %d: 2자리 일의 형식 (예: 01일부터 31일까지)
이 형식 덕분에 날짜가 YYYY-MM-DD 형태로 출력됩니다. 예를 들어, 2024-10-02와 같이 출력됩니다.
스크립트의 결과
이 스크립트를 실행하면, 아래와 같은 형식으로 현재 날짜와 2년 뒤의 날짜가 출력됩니다:
Registration date: 2024-10-02
2 years after the registration date: 2026-10-02
이 스크립트를 사용하면 특정 날짜로부터 간단히 2년 뒤의 날짜를 계산할 수 있습니다. 이 방식은 개발 작업에서 특정 기간 이후의 날짜를 자동으로 계산하고 출력할 때 유용하게 사용할 수 있습니다.
'임베디드 관련 카테고리 > Linux command' 카테고리의 다른 글
chmod 권한의 의미와 숫자 표현 (1) | 2024.10.26 |
---|---|
[Linux, Ubuntu] awk 명령어로 개행 없이 한 줄로 파일 읽기 (1) | 2024.10.02 |
로컬에서 패키지 설치 및 실행 스크립트 작성: wget, dpkg, echo, cat의 이해 (2) | 2024.09.28 |
리눅스에서 cat과 echo의 차이점과 공통점 (0) | 2024.09.27 |
리눅스에서 자주 사용되는 용어와 개념 (1) | 2024.09.26 |
댓글