2. März 2004 (pm): Unterstützung für komprimierte Dateien (Z) hinzugefügt.
2. März 2004 (pm): Geändert, um alle Dateien und Verzeichnisse zu verarbeiten und eine Ebene nach oben zu gehen, um sicherzustellen, dass das enthaltende Verzeichnis berücksichtigt wird.
Eingabeparameter:
`path`: Libref der Bibliothek, für die die Berechtigungen geändert werden sollen (Standard 'inprd').
`local`: Wenn '1', lokal auf UNIX ausführen; andernfalls erfolgt die Einreichung remote vom Client an den Server.
Datenanalyse
Type : CREATION_INTERNE
Das Skript nimmt keine externen Daten zur Verarbeitung auf. Es verwendet einen 'null' DATA STEP für interne Operationen wie die Auflösung eines SAS-Libref-Pfades (`pathname`) und die Ausführung von Systembefehlen (`call system`, `x`).
1 Codeblock
MACRO DEFINITION
Erklärung : Dieser Block definiert das Makro `chmod` mit zwei Parametern: `path` (Libref, Standard 'inprd') und `local` (Indikator für die lokale Ausführung). Der Code enthält einen bedingten Block (`%if`), der, falls `local` nicht angegeben ist, `%syslput` verwendet, um den Wert von `path` zu übertragen und den folgenden Code über `rsubmit` an einen entfernten SAS-Server sendet.
Erklärung : Dieser Block führt einen DATA STEP `_null_` aus, der keinen Datensatz erstellt. Er wird verwendet, um:
1. Den physischen Pfad des SAS-Librefs (`&path`) mit der Funktion `pathname()` aufzulösen.
2. Diesen Pfad im Log anzuzeigen (`put path=`).
3. Den Systembefehl `cd` auszuführen, um das aktuelle Verzeichnis in den aufgelösten Pfad zu ändern.
Anschließend werden zwei `x`-Befehle verwendet, um den UNIX-Befehl `chmod g=rxw *` auszuführen, zuerst im Verzeichnis des Librefs, um der Gruppe Lese-, Schreib- und Ausführungsberechtigungen zu geben, und dann im übergeordneten Verzeichnis (`cd ..`), um dieselben Berechtigungen auf das enthaltende Verzeichnis anzuwenden.
Kopiert!
* Fix authorities so group has full access to datasets & indexes created ;
* use a datastep to force pathname to resolve on UNIX, rather than windows ;
data _null_ ;
length path $ 256 ;
path=pathname("&path") ;
put path= ;
call system('cd '||trim(path)) ;
run ;
x "chmod g=rxw *" ;
* go up a level to fix the directory ;
x "cd .." ;
x "chmod g=rxw *" ;
1
* Fix authorities so group has full access to datasets & indexes created ;
2
* use a datastep to force pathname to resolve on UNIX, rather than windows ;
3
DATA _null_ ;
4
LENGTH path $ 256 ;
5
path=pathname("&path") ;
6
put path= ;
7
call system('cd '||trim(path)) ;
8
RUN ;
9
x "chmod g=rxw *";
10
* go up a level to fix the directory ;
11
x "cd .." ;
12
x "chmod g=rxw *" ;
3 Codeblock
MACRO END
Erklärung : Dieser Block markiert das Ende des Makros. Wenn der Code zu Beginn des Makros über `rsubmit` übermittelt wurde (Bedingung `&local=` wahr), wird `endrsubmit` ausgeführt, um die Remote-Übermittlungssitzung zu beenden.
Kopiert!
%if &local= %then
endrsubmit ; ;
%mend chmod ;
1
%IF &local= %THEN
2
endrsubmit ; ;
3
%mend chmod ;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Program Macro Name : chmod (version#007)
Date : 19feb2004
Written By : phil mason
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.