Makefile에 현재 날짜와 시간을 사용하여 환경 변수를 만들고 싶습니다. 의사 코드 :리눅스 메이크 파일의 환경 변수에 날짜와 시간을 추가하십시오.
LOG_FILE := $LOG_PATH + $SYSTEM_DATE + $SYSTEM_TIME
감사의 말 - 감사합니다.
Makefile에 현재 날짜와 시간을 사용하여 환경 변수를 만들고 싶습니다. 의사 코드 :리눅스 메이크 파일의 환경 변수에 날짜와 시간을 추가하십시오.
LOG_FILE := $LOG_PATH + $SYSTEM_DATE + $SYSTEM_TIME
감사의 말 - 감사합니다.
"날짜"명령을 사용할 수 있습니다
당신은 메이크업에 $ (쉘 작업) 명령을 사용할 필요가LOGFILE=$(LOGPATH) `date +'%y.%m.%d %H:%M:%S'`
당신은 당신이 사용할 수
. operation
을 사용하면 매번 쉘 명령이 평가됩니다. 로그 파일에 기록하는 경우, 단일 make 명령으로 액세스 할 때마다 로그 파일 이름이 변경되는 것을 원하지는 않습니다.
LOGPATH = logs
LOGFILE = $(LOGPATH)/$(shell date --iso=seconds)
test_logfile:
echo $(LOGFILE)
sleep 2s
echo $(LOGFILE)
이 출력됩니다 :
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800
sleep 2s
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800
그러나 이것은 다른 목표에서 동일하게 유지되지 않습니다. –
이 원인 LOGFILE은 사용 매번 evaulated 수하지 않음. 예 : LOGFILE = 로그 /'일 + '% Y %의 m % D- % H :.. %의 M %의 S'' echo_logs : 은 $ (LOGFILE) 슬립 5S 에코 에코 $ ($의 LOGFILE) 인쇄 것이다. 에코 로그/일 '+'% Y %의 m을 % D- % H :. % M : %의 S'' 로그/10.01.28-14 : 21 : 08 sleep 5s 반향 로그 /'date + '% y. % m. % d- % H : % M : % S'' logs/10.01.28-14 : 21 : 13 – Aaron
@Aaron : 당신 말이 맞습니다. 이것을 피하기 위해 gnu는 backticks 대신에'shell' 함수를 사용할 수있다 : LOGFILE = $ (LOGPATH) $ (shell date)' – catwalk
. % m. % d- % H : % M : % S '). Solaris에서도 작동합니다. – anisbet