쉘 스크립트에서 입력 문자열을 날짜로 변환

쉘 스크립트에서 입력 문자열을 날짜로 변환

내 쉘 스크립트:

#!/bin/bash
echo "$1";
startd=$(date -d "$1" +"%Y%m%d"); 
echo "$startd";

내 명령:

sudo ./test.sh "20151010"

산출:

20151010 
20150213

입력한 날짜가 아닌 오늘 날짜가 출력되는 거 아시죠?

답변1

OS X 버전은 date-f옵션을 사용하여 형식이 지정된 날짜/시간을 구문 분석합니다.

date -j -f '%Y%m%d' "$1" +'%Y%m%d'

-j옵션을 사용하면 시스템 시계를 설정하지 않고 시간만 인쇄합니다. 따라서 전체 스크립트는 다음과 같습니다.

#!/bin/bash
echo "$1";
startd=$(date -j -f '%Y%m%d' "$1" +'%Y%m%d'); 
echo "$startd";

다음은 성적표입니다.

$ ./testdate.sh 20151010
20151010
20151010

답변2

OS X에서 날짜 형식을 지정하려는 경우 다음을 시도해 볼 수 있습니다.

date -j -f "%Y%m%d" "20151010"

다음과 같은 결과가 나타납니다.

Sat Oct 10 17:27:28 CDT 2015

관련 정보