2014-02-07 1 views
1

Windows에서 Linux로 일부 SAS 코드를 이식하려고합니다. Windows에서 실행되는 원래 코드는 "drive"라는 심볼릭 참조가 "C : \ SAS"와 같은 특정 디렉토리에 하드 코딩 된 설정을 가지고 있습니다. 그러나 파일 구조를 Linux로 이동하려면이 기호 참조가 필요합니다. 내가 실행중인 .sas 파일이 들어있는 디렉토리와 관련이 있습니다. SAS가 .sas 파일이 들어있는 디렉토리라고 생각하는 것을 쿼리하거나 .sas 파일 contaning 디렉토리와 관련하여이 기호 참조를 설정할 수 있습니까?howto는 현재 디렉토리를 기준으로 심볼릭 참조를 설정합니다.

다음은 예입니다. 액세스가 그때는 아마 뭔가를 노크 수 OS 레벨 명령을 발행 업을 설정 한 경우 정보를 모두 ./multi_use/datetime.sas 및 ./info를 들어

Proc options option=work; 
run; 

* This first version works but is hard coded 
*%let drive=%str(C:\SAS); 

* This version does not work, attempting to set the symbolic reference, relatively. 
* This is an attempt to set the symbolic reference "drive" such that is the actual 
* directory that the controlling .sas file is located in 

%let drive=%str(.); 


*********************************************************; 
     %include "&drive/multi_use/datetime.sas"; 
     libname info "&drive/info"; 
+0

Linux 환경에서 SAS를 어떻게 시작합니까? 실행 파일을 직접 호출하고 있습니까? 아니면 별칭이 지정된 스크립트를 통해 호출하고 있습니까? –

답변

1

존재 않습니다.

는 SAS 파일을 참조하십시오 [I 너무 많이 도움이되지 수있는 명령 OS를 제출할 권한이 없습니다] I/O 당신이 뭘 하려는지 달성하기 위해 몇 가지 편리한 기능을 제공합니다 Functions and CALL Routines by Category 섹션을 참조하십시오.

FILENAME Functionls을 사용하는 방법을 보여주는 페이지의 끝으로 3 예를 참조하십시오 상황에 특별한 관심의

은 다음이 될 것입니다.

PATHNAME Function

FILEEXIST Function

FILEREF Function

[운영 체제 명령을 필요하지 않습니다 다음]

또한 proc options ; run;를 실행 추천 SAS는보고 무엇인지 알아 내기 위해 로그를 검사 할 것 홈 디렉토리로. SAS 프로그램의 경로를 상대적으로 설정할 수 있습니다. GETOPTION Function

0

SAS는 현재 실행중인 파일의 경로/파일 이름을 알려주는 방법이 없습니다.

SAS를 시작하고 다른 폴더 (예 : /tmp/myfile.sas)에서 파일을 실행하도록 지시하면 홈 디렉토리에있는 경우 SAS가 사용하는 현재 작업 디렉토리 (CWD)는 홈 디렉토리. 예를 들어 :

%include "blah.sas"; 

...가 ~/(홈 디렉토리에 blah.sas 찾고됩니다 위의 예에서

cd ~ 
sas /tmp/myfile.sas 

, 경우 myfile.sas a를 다음 문이 blah.sas), 당신이 호출 한 파일 (/tmp/blah.sas)과 같은 폴더에 있지 않으므로 CWD는 SAS를 시작한 곳을 기본값으로하기 때문입니다. 당신이 그것을 작동하게하고 싶었다면

, 당신은 SAS 세션에서 다음 명령을 실행하여/tmp를 폴더에 SAS의 CWD을 변경할 수 있습니다

x cd /tmp; * SET CWD TO THE RELATIVE PATH; 

주 당신은을 통해 SAS를 호출하는 경우 스크립트를 실행하면 SAS가 실행되기 전에 스크립트가 경로를 변경할 수 있으며 위의 내용은 적용되지 않을 수 있습니다.

리눅스 환경에서 현재 SAS에 액세스 할 수 없기 때문에 위 테스트를 수행하지 않았습니다.

관련 문제