So, yesterday I added a neat little snippet to my Control Language Program on this #IBMi system, and re-awakened an irritating feature thats bitten me before. I slept badly last night with this problem niggling away in my brain. But awoke to a bright chilly Las Vegas morning with a steamy coffee and a solution in my brain. (shhh – dont tell anyone that I found it googling, while drinking the aforementioned coffee)
So, lets find how to remove that irritating message.
Problem
Running QSH from CL or from REXX — When the Java command completes in QSHELL we see:
Press ENTER to end terminal session.
This message appears after running a Java command using QSH and we must click Enter to continue…
Solution
Add a simple line setting the java environment code to discard this output:
/* Prevent the annoying "PRESS ENTER" message */ ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE(NONE) LEVEL(*JOB) REPLACE(*YES)
It’s as simple as that – the VALUE(NONE) means we want to discard all of the messages.
Now, running the command doesnt interrupt us with that annoying screen it just silently continues. #nice
But wait, that’s not the only option 🙂
If we want capture the QSH messages into a file (so the program can continue without the need to hit the Enter key) but we can see what it was trying to say you tweak the VALUE parameter. The VALUE(NONE) means to discard all output, but we can also pipe the output to another file on the system like this:
VALUE('file=/your-folder/your-log-file.txt')
Predictably, this will write the output to a stream file in the IFS when we run the QSH (or STRQSH) command.
The file= option replaces the file and we could also use fileappend= add to the existing file for lots of messages:
VALUE('fileappend=/your-folder/your-log-file.txt')
Now, everytime we run our QSH command, the output is added to the end of our IFS stream file.
Good tip. It will come in handy.