La culpa fue del spectrum

La culpa fue del spectrum

domingo, 9 de agosto de 2020

Lanzar un script QSH desde un programa CL

En algunas circunstancias puede ser necesario lanzar un script que realice alguna tarea en el sistema de archivos integrado, en mi caso cada usuario tiene una carpeta personal que para reducir tamaño voy borrando cada cierto tiempo con este CL

PGM                                                                          
/*                                                     */                  
DCL       VAR(&SENTE) TYPE(*CHAR) LEN(256)                                  
DCL       VAR(&USUARIO) TYPE(*CHAR) LEN(10)                                
DCL       VAR(&CMD2) TYPE(*CHAR) LEN(30)                                    
RTVJOBA   USER(&USUARIO)                                                    
/* modifico la variable de entorno a none para que no muestre la consola   */
ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE) LEVEL(*JOB)                                                      
/*                                                     */                  
CHGVAR     VAR(&CMD2) VALUE(' | xargs rm -rf')                              
CHGVAR     VAR(&SENTE) VALUE('find /home/')                                  
CHGVAR     VAR(&SENTE) VALUE(%TRIM(&SENTE)||%TRIM(&USUARIO))                
CHGVAR     VAR(&SENTE) VALUE(%TRIM(&SENTE)||%TRIMR(&CMD2))                  
STRQSH     CMD(&SENTE)                                                                        
RMVENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT)                                      
/*                                                     */                  
ENDPGM                                                                      

En mi caso añado una variable de entorno para que no muestra la consola, después la elimino.

Este programa esta creado y compilado en versión V7R1.

Conduce entre la niebla

La culpa fue del spectrum