![날짜 계산 코드에 날짜 변수를 입력하는 올바른 구문](https://linux55.com/image/6974/%EB%82%A0%EC%A7%9C%20%EA%B3%84%EC%82%B0%20%EC%BD%94%EB%93%9C%EC%97%90%20%EB%82%A0%EC%A7%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%9E%85%EB%A0%A5%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EA%B5%AC%EB%AC%B8.png)
내 스크립트에서 다음 코드는 2016-04-28T15:47:48 형식으로 $n의 타임스탬프 변수를 성공적으로 생성합니다.
for n in $(perl parsetime.pl | sed "s/.....$//")
do
echo $n
결과 :
2016-04-28T15:47:48
그러나 이제 이 변수를 사용하여 15분 전의 시간을 계산하고 싶습니다. 다른 사람들은 올바른 형식(작동)으로 타임스탬프를 생성하는 구문을 제공했습니다. 이는 다음을 통해 달성됩니다.
/opt/bin/date --date '-15 minutes 2016-04-28T15:39:27' "+%Y-%m-%dT%H:%I:%S"
결과 :
2016-04-28T09:09:27
그러나 이제 내 문제는 실제 타임스탬프를 작성하는 대신 $n 변수를 사용하려고 하면 오류 메시지가 표시된다는 것입니다.
for n in $(perl parsetime.pl | sed "s/.....$//")
do
/opt/bin/date --date '-15 minutes "$n"' "+%Y-%m-%dT%H:%I:%S"
결과:
/opt/bin/date: invalid date `-15 minutes "$n"
내가 뭘 잘못했나요? $n 변수를 코드에 올바르게 통합하려면 어떻게 해야 합니까?
답변1
그것이 문제이다:
'-15 minutes "$n"'
작은따옴표는 변수 대체를 중지하므로 실제로 "$n"
변수 내용 대신 전달됩니다.
쓰다:
/opt/bin/date --date "-15 minutes $n" '+%Y-%m-%dT%H:%I:%S'
대신에.