저는 변수 세트를 평가하는 tcl 코드를 가지고 있습니다. 이 변수의 값은 변수 할당을하는 일련의 포함됩니다 파일 밖으로 조리법dereference는 변수를 인라인으로 만듭니다.
enter code here
MY_ENV_VAR?=45
foo:ARG1?=test
foo:OUTFILE:=./testFile
foo:
$(shell ./evalVars.tcl -arg1 $(ARG1) -outFile $(OUTFILE))
$(foreach var,$(shell cat $(OUTFILE)),$(eval $(var)))
runcmd -value $(myvar)
에 다음 행 인수로 전달해야 "myVar에를 = 400"
쉘 기능 하나를 사용하여에 명령 행/make 변수는 환경 변수로서 tcl 쉘에 전달되지 않습니다.
tcl 쉘에서 env (MY_ENV_VAR)를 참조 해제하면 존재하지 않습니다. 쉘 명령을 사용하지 않으면 out 파일이 작성되기 전에 foreach/eval 행이 실행되지만 변수는 tcl 쉘에 표시됩니다.
나는 이것을하기위한보다 우아한 방법이있을 것이라고 확신합니다.
덕분에 같은 줄 것
: 방금 뭔가를 할 수 있다고 한 경우. 많이 추측 :-). 나는 환경 변수 접근 방식을 시도했지만 .oneshell을 사용하지만 나는 어떤 문제에 부딪쳤다 고 생각해 냈다. 나는 env와 결합 된 &&를 사용할 수 있습니다. 별도의 레시피에서 evalvars를 가질 수 있지만 호출하는 각 대상은 특정 인수를 전달하고 설정된 변수를 사용해야합니다. 필요한 경우 evalvars의 출력을 수정할 수 있습니다. –
값이 특수 문자를 갖는 변수를 실행할 때까지 잘 작동하는 대안을 시도했습니다. 나는 이것들을 ''탈출구와 함께 그룹화 해 보았습니다. 예를 들어 setenv a 'b [c = 1]' –
죄송합니다. 문제를 이해하지 못했습니다. 문제가있는 특수 값/변수 지정 유형의 예를 제공해주십시오. – MadScientist