2017-04-04 3 views
2

ich in der USS-Shell unter TSO bin, und ich habe diese exec (Tryit genannt):Verzeichnis in REXX-Exec ändern, das in z/OS USS ausgeführt wird?

/* rexx */ 
"cd /differentdir" 
"pwd" 

Hier ist das Ergebnis:

> pwd 
/origdir 
> tryit 
/origdir 

Mit anderen Worten, die Auswirkungen der cd Befehl scheint nur für die Dauer des Befehls selbst zu dauern. Gibt es eine Möglichkeit für REXX exec, das Arbeitsverzeichnis so zu ändern, dass es in folgenden Befehlen erkannt wird?

+0

Sehen Sie sich die REXX-Syscall-Umgebung an. Was Sie tun, ist temporär, da standardmäßig jeder dieser Befehle im Wesentlichen eine separate ADDRESS-Anweisung mit dem Befehlszeichenfolgenargument ist. – zarchasmpgmr

+0

@zarchaschmpgr Das war genau die Aufforderung, die ich brauchte. Vielen Dank. –

Antwort

4

Für REXX-Execs, die unter der USS-Shell ausgeführt werden, ist die Standardadressierungsumgebung SH. Vom Using REXX and z/OS UNIX System Services Handbuch:

Beachten Sie, dass in dem Shell-Prozess Einbau-Shell-Befehle ausführen, nicht REXX Prozess und die REXX-Umgebung nicht verändern kann. Zum Beispiel wird die Adresse sh 'cd /' das aktuelle Verzeichnis Ihres REXX-Prozesses nicht ändern.

Um eine dauerhafte Änderung am aktuellen Arbeitsverzeichnis vorzunehmen, geben Sie den Befehl address syscall chdir ein. Aus dem gleichen Handbuch:

Wenn Sie Chdir verwenden, um ein Verzeichnis in einem REXX-Programm zu ändern, die in einer TSO/E-Sitzung ausgeführt wird, wird das Verzeichnis der Regel auf Ihr Home-Verzeichnis zurückgesetzt, wenn das REXX Programm endet.

Verwandte Themen