DATA Step, Macro, Functions and more

Reg:Shell X command.

Reply
Contributor
Posts: 37

Reg:Shell X command.

RegSmiley Frustratedhell X command

Actually i want to execute sheel script if the day=6

i am doing like this

data _null_;
if &day=6;
then do;
x 'new.sh';
x 'old.sh';
end;
run;

If i keep like this is was working on all the days acutally &day i my macro variable
from a dataset it was not resoving properly how can i do it.

Frequent Contributor
Posts: 139

Reg:Shell X command.

Hi,

My_SAS since the comparison is onmacro variable the condition should be macr condition and would involve macr if condition:-

data _null_;


%if &day=6;
%then %do;
x 'new.sh';
x 'old.sh';
%end;
run;

try this..

Contributor
Posts: 37

Re: Reg:Shell X command.

Posted in reply to manojinpec

actually is there any way for the x command to execute the shell script if it satisfy the contion i have given

Contributor
Posts: 65

Re: Reg:Shell X command.

I have not tested this, but just looking at your code, it appears you have an extra semicolon. Try it without the semicolon after the "6". In other words:

if &day = 6 then do;

Karl

Trusted Advisor
Posts: 1,301

Reg:Shell X command.

X statment cannot be executed from in a datastep.  It can be executed conditionally through a macro as shown above.

In a datastep, use call system, or call execute with the x command inside.

data _null_;

if &day=6 then do;

call system('/path/to/new.sh');

call execute('x /path/to/old.sh');

end;

run;

Ask a Question
Discussion stats
  • 4 replies
  • 196 views
  • 0 likes
  • 4 in conversation