오늘은 명령에 대해 배우면서 make
현재 디렉토리를 읽으면 어떤 bash
명령 이라도 실행할 수 있는 것 같다는 것을 발견했습니다.Makefile
그러나 문제가 발생했습니다. 변수를 사용할 때 시스템은 변수의 첫 번째 문자만 읽는 것 같습니다.
내 파일과 결과는 다음과 같습니다.
# FILE CONTENT
Z="zen_on_the_moon"
now=$(date)
fun:
touch $Z
echo $now
echo "file created on" $now >> $Z
# RUNNING IT
=>make fun
touch "zen_on_the_moon"
echo ow
ow
echo "file created on" ow >> "zen_on_the_moon"
now
아래 프로젝트에서 변수를 어떻게 사용해야 하나요 ?Makefile
fun
답변1
Makefile
너 보다변수 참조구문을 사용하여 $(var_name)
. 사용하면 $var_name
달러 기호 $
, 여는 대괄호 (
또는 여는 중괄호 이외의 첫 번째 문자가 {
변수 이름으로 처리됩니다.
에서는 $now
실제로 변수의 내용을 얻은 $n
다음 리터럴 문자열을 얻습니다 ow
.
따라서 다음이 필요합니다.
$(now)
라는 변수의 내용을 가져옵니다 now
.
또한 얻어지는 것은 명령의 결과가 아니라 now=$(date)
name 변수의 내용이라는 점에 유의하십시오 . 당신은 사용해야합니다date
date
쉘 기능:
now=$(shell date)