分类: 系统运维
2011-10-11 09:58:33
我们可以用CL命令STRQSH或QSH来启动Qshell环境。STRQSH有一个参数叫CMD,缺省值是*none,意思是不执行任何Qshell命令。
当你运行STRQSH的时候,会发生什么事取决与下面三件事:
稍后我们会讨论。
在interactive job下运行Qshell
CMD参数中不写任何Qshell命令的执行STRQSH的时候就是启动了一个interactive job为Qshell。如图:
QSH Command Entry
F3=Exit F6=Print F9=Retrieve F12=Disconnect |
panel title下面就是输出区,Qshell session开始时输出区是空的除了Qshell提示符$。
在输出区会列出你输入的Qshell命令及相应结果。如图:
QSH Command Entry
|
CMD参数可以输入5000个字符的Qshell命令。下面就是一个简单的例子:
STRQSH CMD('ls *.out')
这种情况,Qshell不会打开一个session的,直接执行了ls命令并结束,如图:
a.out
===>___________________________________________________________________ ________________________________________________________________________ |
在batch job下运行Qshell
我们可以有限制的运行Qshell在batch job下。如:
下面就是一个运行Qshell命令在batch模式下的例子:
SBMJOB CMD(QSH CMD('ls *.out')) JOB(LISTFILE)
如果Qshell的CMD参数为*none,Qshell将不做任何动作并且job结束。
重定位Qshell输出
在V5R2,我们可以使用环境变量QIBM_QSH_CMD_OUTPUT来控制Qshell的输出目的地:
环境变量QIBM_QSH_CMD_OUTPUT允许的值有:
下面就是一个将输出输出到文件的例子:
ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE('FILE=lsout.txt')
STRQSH CMD('ls *.out')
进入Qshell,用pwd命令查看当前directory,用ls查看当前directory中的lsout.txt文件,用cat查看lsout.txt的内容。如图:
QSH Command Entry
|
当让也可以输出到数据文件中,但只能是程序描述的数据文件。例子如下:
ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE('FILE=/qsys.lib/ptrlib.lib/lsout.file/lsout.mbr')
CRTPF FILE(PTRLIB/LSOUT) RCDLEN(24)
STRQSH CMD('ls *.out')
用命令DSPPFM FILE(PTRLIB/LSOUT) 查看结果。
数据文件的每行数据的结尾是十六进制的25。
在unix下,一个进程就是一个正在运行的程序。Qshell的解释器就是一个进程。每个utility不是内置的命令,所以他们运行在自己进程中。在Qshell下,每个进程运行在自己的job下,所以进程和job可以互换。
终端会话看起来是一个interactive会话,但不完全是,是一组job。
当Qshell启动,OS/400会启动一个名为QZSHSH的batch-mmediate job来运行Qshell的解释器。此时,共有连个job,interactive job和batch-immediate job。如果要是执行了一个subshell或utility的话,Qshell会启动名为QP0ZSPWP的额外job如图:
QSH Command Entry
===>___________________________________________________________________ ________________________________________________________________________ |
可以用Qshell命令ps来显示进程的信息,如图:
QSH Command Entry ===>___________________________________________________________________ ________________________________________________________________________ |
-----------------
OVER
欢迎讨论