쉘 스크립트에서 SAS 매크로 변수를 구문 분석하는 방법

쉘 스크립트에서 SAS 매크로 변수를 구문 분석하는 방법

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예제에서 제안한 것처럼 쉘은 외부 매크로 시스템(예: )의 변수를 구문 분석할 수 없습니다 .

할 수 있는환경에서 셸 사용량 값을 가져옵니다. 예를 들어, VAR1content 가 포함된 변수를 내보내는 경우 test다음에서 사용할 수 있습니다 abc.sh.

echo "value is $VAR1" >myfile.txt

(셸에서 변수를 내보내는 일반적인 규칙이기 때문에 모두 대문자를 사용합니다. $var1내보낸 이름도 소문자인 한 소문자도 괜찮습니다.)

SAS에서 변수를 내보내는 방법을 알아야 합니다. (SAS 경험이 없습니다.)~인 것 같다SAS는 setenv명령문이나 명령을 지원합니다. setenv이것은 일반적으로 일부 쉘에서 변수를 내보내는 데 사용되므로 변수를 직접 내보내려고 하면 거기를 살펴보겠습니다.

관련 정보