내 쉘 스크립트:
#!/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