2017-04-04 7 views
2

Je suis dans la coquille USS sous TSO, et je cette exec (nommé tryit):Modifier le répertoire dans REXX exec exécuté dans z/OS USS?

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

Voici le résultat:

> pwd 
/origdir 
> tryit 
/origdir 

En d'autres termes, les effets de la La commande cd semble ne durer que pendant la durée de la commande elle-même. Existe-t-il un moyen pour l'exec REXX de changer le répertoire de travail d'une manière qui sera reconnue dans les commandes suivantes?

+0

Regardez l'environnement des appels système REXX. Ce que vous faites est temporaire, car par défaut, chacune de ces commandes est essentiellement une instruction ADDRESS séparée avec l'argument de la chaîne de commande. – zarchasmpgmr

+0

@zarchasmpgmr C'était exactement ce dont j'avais besoin. Merci. –

Répondre

4

Pour les exécutions REXX s'exécutant sous le shell USS, l'environnement d'adressage par défaut est SH. De la Using REXX and z/OS UNIX System Services manuel:

Notez que la gestion intégrée des commandes shell dans le processus shell, pas votre processus de REXX et ne peut pas modifier l'environnement REXX. Par exemple, l'adresse sh 'cd /' ne changera pas le répertoire courant de votre processus REXX.

Pour apporter une modification persistante au répertoire de travail actuel, exécutez la commande address syscall chdir. De même manuel:

Si vous utilisez chdir pour changer un répertoire dans un programme REXX qui est en cours d'exécution dans une session de TSO/E, le répertoire est remis à zéro généralement à votre répertoire lorsque le programme se termine REXX .