SAS 매크로의 X 명령을 통해 쉘 스크립트를 실행하고 있습니다. SAS 매크로에 정의된 매크로 변수를 쉘 스크립트에서 사용하고 싶습니다. 해당 매크로 변수를 쉘 스크립트에 인수로 전달하면 X 명령에서 이를 구문 분석할 수 있다는 것을 알고 있습니다.
예를 들어, 다음은 잘 작동한다는 것을 알고 있습니다.
%macro a;
%let var1=test;
X "abc.sh &var1";
%mend;
%a;
다음 쉘 스크립트를 사용하십시오.
echo "value is $1" > myfile.txt
내가 원하는 것은:
%macro a;
%let var1=test;
X "abc.sh";
%mend;
%a;
다음 쉘 스크립트를 사용하십시오.
echo "value is &val1" > myfile.txt
쉘 스크립트에서 매크로 변수를 해결할 수 있는 방법이 있나요? 조사를 해보았지만 아무 것도 찾을 수 없었습니다.
답변1
&val1
예제에서 제안한 것처럼 쉘은 외부 매크로 시스템(예: )의 변수를 구문 분석할 수 없습니다 .
너할 수 있는환경에서 셸 사용량 값을 가져옵니다. 예를 들어, VAR1
content 가 포함된 변수를 내보내는 경우 test
다음에서 사용할 수 있습니다 abc.sh
.
echo "value is $VAR1" >myfile.txt
(셸에서 변수를 내보내는 일반적인 규칙이기 때문에 모두 대문자를 사용합니다. $var1
내보낸 이름도 소문자인 한 소문자도 괜찮습니다.)
SAS에서 변수를 내보내는 방법을 알아야 합니다. (SAS 경험이 없습니다.)~인 것 같다SAS는 setenv
명령문이나 명령을 지원합니다. setenv
이것은 일반적으로 일부 쉘에서 변수를 내보내는 데 사용되므로 변수를 직접 내보내려고 하면 거기를 살펴보겠습니다.