Как мы можем передать переменную в команде oscmd в sas
Я использую команду oscmd для запуска некоторых операций операционной системы из sas, но хочу сделать ее универсальной, передав переменную в команде oscmd. Я использую код ниже:%global name =skstar; filename oscmd pipe "python test.py --inputvar=&name.";
Значение переменной name не заменяется в команде.
РЕДАКТИРОВАТЬ: вышеуказанная часть работает сейчас, это просто ошибка цитаты. но хотел знать, как прервать выполнение команды oscmd cli, если значение параметра передано неверно
1 ответ
Решение
Возможно , ваш шаг данных неверен, но вы не пишете туда. Работает нормально:
%let name=test words;
filename oscmd pipe "echo &name.";
data _null_;
infile oscmd;
input;
put _infile_;
run;
/*log:
NOTE: The infile OSCMD is:
Unnamed Pipe Access Device,
PROCESS=echo test words,RECFM=V,LRECL=32767
test words
NOTE: 1 record was read from the infile OSCMD.
The minimum record length was 10.
The maximum record length was 10.
NOTE: DATA statement used (Total process time):
real time 0.18 seconds
cpu time 0.03 seconds
*/