Bash 如何执行用BASE64编码的sas程序?

Bash 如何执行用BASE64编码的sas程序?,bash,file-io,sas,base64,Bash,File Io,Sas,Base64,是否可以执行在BASE64中编码的SAS程序 比如: data _null_; file STDOUT; put "Hello World!"; run; 会是 ZGF0YSBfbnVsbF87CiAgICBmaWxlIFNURE9VVDsKICAgIHB1dCAiSGVsbG8gV29ybGQhIjsKcnVuOw== 然后执行可以这样做: sas 而不是 sas hello.sas 基本上,我需要运行SAS程序,但我不想将其物理存储。我记得(从HPUX时代起)类Unix系统

是否可以执行在BASE64中编码的SAS程序

比如:

data _null_;
    file STDOUT;
    put "Hello World!";
run;
会是

ZGF0YSBfbnVsbF87CiAgICBmaWxlIFNURE9VVDsKICAgIHB1dCAiSGVsbG8gV29ybGQhIjsKcnVuOw==

然后执行可以这样做:

sas

而不是
sas hello.sas

基本上,我需要运行SAS程序,但我不想将其物理存储。

我记得(从HPUX时代起)类Unix系统中的SAS对SAS有特殊的处理选项:

  • -SYSIN

    文件名的
    -
    意味着从stdin读取程序
如果是这样的话,你可以试试

echo ...base64.encoded.sas.source.code... | base64 -decode | sas -sysin -

使用其他选项控制SAS会话和其他管道或重定向,以处理SAS代码生成的标准输出内容。

什么操作系统?操作系统是IBM AIX您要查找的命令行选项是
-stdio
-sysin
选项只是传递程序名的另一种方式。因此
sas-sysin xx.sas
sas xx.sas
相同。我认为,
sysin
来自旧的JCL时代,那时它是用于源代码的DDNAME。这真的很有趣,我现在就试试。base64命令在系统上不可用,但我可以使用perl模块获得相同的结果。谢谢所以这对我不起作用,但这是一个好的开始。运行echo ZGF0YSBFBNVSBF87ciagicbmawxlifnure9vvdskicagihb1dcaisgsbg8gv29ybgqhijskcnvuow==| perl-MMIME::Base64-ne'printf“%s\n”,decode|Base64($)| sas-sysin-会给我以下错误:选项sysin需要参数@Tom尝试使用
-stdio
而不是
-sysin
,如果您有任何关于如何将响应重定向到stdout而不是我感兴趣的物理sas文件的线索,请访问