예를 들어 현재 날짜와 시간을 다음 형식으로 표시하고 싶습니다.
yyyymmddhhmmss
어떻게하나요? 대부분의 날짜 형식이 올 것처럼과 같다 -
, /
, :
, 등
답변
여기 있습니다 :
date +%Y%m%d%H%M%S
으로 man date
상단 말한다, 당신은 사용할 수있는 date
이 같은 명령을 :
date [OPTION]... [+FORMAT]
즉,로 시작하는 형식 매개 변수를 제공 할 수 있습니다 +
. 내가 사용한 서식 기호의 의미를 추측 할 수 있습니다.
%Y
년입니다%m
한 달 동안입니다%d
낮입니다- … 등등
이 및 기타 서식 기호는에서 찾을 수 있습니다 man date
.
답변
쉘 스크립트의 간단한 예
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
구두점 형식 없음 :-+ % Y % m % d % H % M % S
구두점 포함 :-+ % Y- % m- % d % H : % M : % S
답변
Bash를 사용하는 경우 다음 명령 중 하나를 사용할 수도 있습니다.
printf '%(%Y%m%d%H%M%S)T' # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1 # same as above
printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
옵션 -v varname
을 사용하여 결과 $varname
를 stdout에 인쇄하는 대신 저장할 수 있습니다 .
printf -v varname '%(%Y%m%d%H%M%S)T'
date 명령은 항상 서브 쉘 (즉, 별도의 프로세스)에서 실행되지만 printf는 내장 명령이므로 더 빠릅니다.
답변
구두점 없음 (@Burusothman이 언급했듯이) :
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
O / P :
20170115072120
구두점 포함 :
current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;
O / P :
2017-01-15 07:25:33
답변
매개 변수 확장을 사용하여이 작업을 수행하는 흥미롭고 재미있는 방법 ( bash 4.4
필수 이상) :
${parameter@operator} - P operator
확장은 마치 프롬프트 문자열 인 것처럼 매개 변수 값을 확장 한 결과 인 문자열입니다.
$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
답변
