Установка значения по умолчанию для возвращаемого значения% sysget - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть следующий код:

%let my_var = %sysget(MY_VAR);
%put &=my_var;

Если я запусту следующий код, будет определено my_var и напечатано:

#!/bin/bash

export MY_VAR=1;
/sas/scripts/sas my_script.sas

Но без этого оператора exportmy_var фактически не определено, и сценарий полностью выполняется без ошибок.

#!/bin/bash

/sas/scripts/sas my_script.sas

Я хочу установить значение по умолчанию для того, что возвращается из %sysget, если переменная не определена.Как я могу это сделать?

1 Ответ

2 голосов
/ 23 сентября 2019

Вы можете использовать функцию ENVLEN (), чтобы найти длину переменной окружения.Он вернет -1, когда он не определен.

%let vname=MY_VAR;
%let want=DEFAULT;
%if %sysfunc(envlen(&vname))>-1 %then %do;
  %let want=%sysget(&vname.);
%end;
%put &=vname &=want;
...