用于定制用户命令的输出的方法和装置的制作方法

文档序号:6421233阅读:146来源:国知局
专利名称:用于定制用户命令的输出的方法和装置的制作方法
技术领域
本发明涉及一种用于定制用户命令的输出的方法和装置。更具体地说,它涉及一种用于在运行UNIX外壳命令之前定制这些命令的输出的方法和装置。
背景技术
如在本技术领域众所周知的那样,操作系统是为用户应用程序进行服务和管理计算机系统资源的软件程序。这些操作系统的一个众所周知的部分是命令解释器,或如经常称呼的命令外壳(command shell)。基于UNIX的操作系统有若干个众所周知的外壳,如csh和tcsh,而MicrosoftWindows操作系统有MS-DOS提示符。命令外壳提供计算机和用户之间的直接接口(这不同于计算机上运行的用户程序),允许用户执行诸如管理文件、启动和停止程序等功能。在基于UNIX的操作系统中,命令允许用户操纵和显示与文件、系统建立、用户和组有关的信息。简言之,外壳命令,如它们被称呼的那样,允许用户在操作系统环境内巡游。一个基于UNIX的操作系统的外壳命令,IBM z/OS操作系统的UNIX系统服务组件,在IBM出版物“z/OS UNIX System Services Command Reference”,SA22-7802-03(2002年6月)中进行了描述,该出版物在此引入作为参考。
作为一具体实例,通常使用的UNIX外壳命令是用于显示文件和目录信息的ls命令,在所引用的出版物的第328-334页中有描述。ls命令的输出当与其多个选项一起使用时,可以显示文件的各种属性。例如,ls-l将显示文件权限、到特定文件的链接,用户ID(UID)、组ID(GID)、文件大小、文件最后一次被修改的日期以及文件名。ls-l命令的样本输出将如同下面所示-rw---------1 USER GROUP 46872 Apr 24 18:30 file
-rw---------1 USER GROUP27Jul26 2000file-rw-rw-rw- 1 USER GROUP4486 Mar13 11:23 file-rw---------1 USER GROUP391 Mar2 16:01 file-rwx--------1 USER GROUP42Feb2 17:20 file-rw---------1 USER GROUP30Oct2 2000file尽管像这样的外壳命令提供各种格式选项,但它们没有提供让用户操纵和定制命令输出的方便的方法。为了让用户能操纵这种外壳命令的输出,用户必须要具有书写外壳脚本的经验。必须有写这种复杂的外壳脚本的经验使得新手用户没有能力操纵命令输出。

发明内容
概括地说,本发明旨在于一种用于在UNIX操作系统或具有命令外壳的其他操作系统中定制用户命令的输出的方法和装置。优选地包含在配置文件中的配置数据为一个或多个用户命令的每个指定一种输出格式。命令外壳响应接收到用户命令,处理该命令以产生一个输出并根据配置数据对该输出格式化。
配置数据可对命令整体来指定诸如色彩和字体等属性,也可对该命令的指定字段指定这些属性。配置数据可以是默认的(缺省的)配置数据或可在命令行中指定。命令行还可包含标志,该标志指示不使用配置数据,于是采用默认属性。
本发明给予用户这样一种能力,使得在运行外壳命令之前对那些命令的输出指定属性。尽管本发明不限于UNIX外壳命令,但在应用于这种外壳命令时,本发明基于当前的POSIX标准构建并将构成这一标准的扩展。


图1显示包含本发明的计算机系统。
图2显示图1所示的命令解释器的功能单元。
图3显示由用户执行的步骤。
图4显示由命令解释器进行的步骤。
具体实施例方式
图1显示包含本发明的计算机系统100。计算机系统100包含硬件机器102,硬件机器102具有操作系统104并通常具有在其上运行的一个或多个用户应用程序(未画出)。硬件机器102可以是本技术领域公知的任何适当类型,如Intel体系结构(如Pentium)机器,精简指令集计算机(RISC)机器或“主机”型(mainframe)机器,该“主机”型机器如IBMeServer zSeries服务器。再有,尽管这里称其为“机器”,硬件机器102可以是一个基础主机(未画出)的逻辑分区或虚拟机。操作系统104可以是具有命令外壳的任何适当类型,如具有UNIX命令外壳的基于UNIX的操作系统,或具有MS-DOS提示符的Microsoft Windows操作系统。如果硬件机器102是IBM eServer zSeries服务器,则操作系统104可以是IBMz/OS操作系统的UNIX系统服务组件。
操作系统104含有命令解释器(或外壳)106。命令解释器106响应通过如键盘或指示器的输入设备108输入的用户命令,从而在如显示监视器或打印机的输出设备110上产生输出。根据本发明,如下文中进一步描述的那样,命令解释器106根据用户提供的配置数据对其输出格式化。优选地,该配置数据存储为文件112。
图2显示命令解释器106的功能单元。作为UNIX系统中的传统做法,来自输入设备108的输入(这里包括用户输入的命令行)被写入标准输入文件(stdin),该标准输入文件可由编程读取。stdin的内容作为未经语法分析的输入202被读入到命令解释器106的输入语法分析器204。输入语法分析器204对未经语法分析的输入202进行语法分析以产生语法分析后的输入206,该语法分析后的输入206被提供给命令解释器106的命令处理器208。命令处理器208又处理该语法分析后的输入,以产生未格式化的输出210提供给命令解释器106的输出格式化器212。最后,输出格式化器212对输出210格式化以产生格式化后的输出214。该格式化后的输出214被写入标准输出文件(stdout),从该标准输出文件被它写入输出设备110,如在UNIX系统中的传统做法那样。
图3和图4显示总的处理流程。图3显示由用户执行的步骤,而图4显示由命令解释器106执行的步骤。
首先参考图3,在运行希望有格式化的输出的命令之前的某一时刻,用户定义配置文件112(步骤302)。这一配置文件112可作为平面文件(flatfile)实现并可人工创建或由工具创建。这样的工具将具有与字处理器相似的格式化能力,该能力将包括诸如改变字体或字体大小、允许加重字体以及对文本着色等功能。于是用户将使用这一工具来对文本进行格式化,如同在字处理器中那样。该工具可用于通过允许用户选择要格式化的命令输出,以对不同的命令采用不同的格式。当选定要格式化的命令之后,该工具将呈现选定命令的典型样本输出。如果用户希望对在选择中不能得到的命令格式化,用户可为他的命令创建“简档”,“简档”包括命令名、字段名、字段属性和要格式化的样本输出。当用户指示他已准备好写配置文件112时,该工具将捕获用户对样本输出所采用的格式并把那些属性写入配置文件112。
配置文件112可以以类似于Visual Basic编程语言的格式写成,其中由三个限定词组成的序列将指示要对特定字段采用的格式化。最高级限定词将区分命令。第二(或中间)限定词将区分命令的输出中的字段。最后和第三限定词将区分被设置的属性。第三限定词将有一组标准的限定词,它们代表要被指配以对该字段格式化的属性,如字体、颜色、偏移和大小。可使用高级限定词而不使用中间级限定词以对与该命令关联的全部输出采用属性。高级限定词和/或中间级限定词还可用作一种有效的方法,用来通过把属性值设为“OFF”来关掉对命令的格式化。(除了提供OFF设置外)这一能力将提供一种方便的方法用来忽略一些配置设置,而无需用户创建新的配置文件112或修改他的现有配置文件。未定义的任何配置造成的结果是采用默认的格式化,如传统上对命令输出所做的那样。
典型的配置文件112可如下所示
|s-|.color=green|s-|.field2.offset=50|s-|.field3.offset=10|s-|.field3.Color=pink|s-|.field4.size=20|s-|.field4.offset=60|s-|.field4=OFFps.font=courierps.size=10在这个文件中,除非更特殊地指示,行1只含有对于命令ls-l的第一(命令)限定词,指示那个命令的全部输出的颜色为绿色。且行2-6每行包含第二(字段)限定词和第三(属性)限定词,指示指定字段中的指定属性的指定值。与此相反,行7不包含第三(属性)限定词而只包含一个值(OFF),指示将对字段4采用默认属性而不是在配置文件112的行1、5和6中定义的属性。最后,行8和9为另一个UNIX外壳命令的输出指定一对属性(字体和尺寸),该命令是ps命令,用于显示关于进程的状态信息。
然后,用户从外壳发出命令,如ls-alg(步骤304)。根据本发明,该命令行可指定配置文件112作为输入参数之一;例如,该命令行可读作|s-|-cnfgfile<Configfilename>
其中-cnfgfile是用于指定配置文件112的标志,而<configfilename>是被指定的特定配置文件112名。如果在该命令行中没有指定配置文件112,则使用默认的配置文件112。默认的配置文件112可由环境变量语句指定,如CNFGFILE=<CONFIGFILENAME>
其中CNFGFILE是环境变量名,<CONFIGFILENAME>是被指定的默认配置文件名。
该命令行还可包含一个标志,该标志向命令解释器106指示不应采用在命令行中指定的或默认指定的配置文件112。例如,该命令行可读作|s-|-nofrm其中-nofrmt是一个标志,该标志指示不应采用配置文件112。在这种情况下,该命令被正常处理,而采用该命令原有的“默认”属性对输出格式化;就是说,对输出的格式化如同在没有本发明时“正常”进行的那样。这一标志还能用于调试特征,它将在用户的格式化使字段不被显示的情况下允许用户观看没有格式化的命令输出。
现在参考图4,在从输入设备108输入用户命令时(步骤402),命令解释器106开始执行该命令。命令解释器106的语法分析器204首先以传统方式对该命令行进行语法分析,以识别命令关键字自身以及任何输入参数、选项、标志等(步骤404)。根据本发明,在这一语法分析步骤期间,语法分析器204还检查忽略配置文件112中所含的配置设置的标志以及对配置文件112的明确指配。如果发现了该标志(步骤406),则命令解释器106继续进行正常的命令处理,其中命令处理器208产生输出210(步骤408),然后输出格式化器212采用为该命令定义的“默认”属性对那个输出格式化以产生格式化后的输出214(步骤410);即,命令解释器106如“正常”那样对输出格式化。最后,命令解释器106把格式化后的输出214写到标准输出设备(stdout)(步骤412)。
如果在步骤406中没有发现忽略配置设置的标志,而且如果该命令行明确指定配置文件112(步骤414),则命令解释器106读取明确指定的配置文件112并保存该配置数据,供以后用于当命令的输出被指向标准输出(stdout)时对命令输出格式化(步骤416)。如果没有明确指定这样的配置文件112,则命令解释器106保存来自默认配置文件112的配置数据供在格式化期间使用(步骤418)。不论在哪种情况下,命令解释器106然后都将继续通过命令处理器208进行正常的命令处理,如在步骤408中所做的那样(步骤420)。如正常进行的那样继续进行命令处理,直至输出就绪将被写到stdout。于是,不是象在步骤410中那样使用默认格式化属性,而是由命令解释器106的输出格式化器212使用保存的配置数据,采用来自于选定的配置文件112的指定到输出的属性,该选定的配置文件112根据情况可以或者是明确指定的配置文件112,或者是默认的配置文件112(步骤422)。每次指定选定的配置文件112都对输出格式化。如果没有将属性赋予字段或命令,则采用默认属性(如在本发明的命令格式化之前可得到的属性)。最后,命令解释器106把格式化后的输出写到stdout(步骤412)。
尽管已显示和描述了特定实施例,但各种修改对本领域技术人员来说是显而易见的。因此,尽管本发明是在UNIX命令外壳的环境中描述的,但本发明也可用于其他系统,如Microsoft Windows操作系统的MS-DOS提示符。
权利要求
1.一种在信息处理系统中定制用户命令的输出的方法,在该系统中用户输入命令的命令行到该系统以从该系统得到该命令的输出,所述方法包含如下步骤保存指定所述命令的所述输出的格式的配置数据;以及响应用户将所述命令的命令行输入到所述系统,处理所述命令行以产生所述命令的输出,并根据所述配置数据为所述输出指定的格式对所述输出格式化。
2.权利要求1的方法,其特征在于所述配置数据被保存为文件。
3.权利要求1的方法,其特征在于所述配置数据为多个命令中的每个命令的输出指定格式。
4.权利要求1的方法,其特征在于所述配置数据为所述命令的输出的多个字段中的每个字段指定格式。
5.权利要求1的方法,其特征在于所述配置数据指定所述命令的输出的多个属性中的每个属性。
6.权利要求1的方法,其特征在于,所述处理步骤包括对所述命令行进行语法分析以解码所述命令和处理所述命令以产生所述输出的步骤。
7.权利要求1的方法,其特征在于,所述处理步骤包括以下步骤对所述命令行进行语法分析以得到对特定配置数据的指定,如果这特定配置数据被所述命令行指定,则根据所述特定配置数据对所述输出格式化。
8.权利要求1的方法,其特征在于,所述处理步骤包括以下步骤对所述命令行进行语法分析以得到忽略所述配置数据的标志,如果在所述命令行中含有所述标志,则与所述配置数据无关地对所述输出格式化。
9.一种在信息处理系统中用于定制用户命令的输出的装置,在该系统中用户输入命令的命令行到该系统以从该系统得到该命令的输出,所述装置包含配置数据存储器,用于保存为所述命令的所述输出指定格式的配置数据;以及命令行处理器,响应用户将所述命令的命令行输入到所述系统,用于处理所述命令行以产生所述命令的输出,并根据由所述配置数据为所述输出指定的格式对所述输出格式化。
10.权利要求9的装置,其特征在于所述配置数据被保存为文件。
11.权利要求9的装置,其特征在于所述配置数据为多个命令中的每个命令的输出指定格式。
12.权利要求9的装置,其特征在于,所述命令行处理器包含命令行语法分析器,用于对所述命令行进行语法分析以解码所述命令;命令处理器,用于处理所述命令以产生输出;以及输出格式化器,用于对所述输出格式化以产生格式化后的输出。
13.权利要求12的装置,其特征在于所述命令行语法分析器对所述命令行进行语法分析以得到特定配置数据的指定,如果所述特定配置数据被所述命令行指定,则所述输出格式化器根据所述特定配置数据对所述输出格式化。
14.权利要求12的装置,其特征在于所述命令行语法分析器对所述命令行进行语法分析以得到忽略所述配置数据的标志,如果在所述命令行中含有所述标志,则所述输出格式化器与所述配置数据无关地对所述输出格式化。
15.一种机器可读的程序存储设备,有形地体现机器可执行的指令程序,用以在信息处理系统中实现用于定制命令的输出的方法步骤,在该信息处理系统中用户输入该命令的命令行到该系统以从该系统得到所述输出,所述方法步骤包含保存为所述命令的所述输出指定格式的配置数据;以及响应用户将所述命令的命令行输入到所述系统,处理所述命令行以产生所述命令的输出,并根据所述配置数据为所述输出指定的格式对所述输出格式化。
16.权利要求15的程序存储设备,其特征在于所述配置数据被保存为文件。
17.权利要求15的程序存储设备,其特征在于所述配置数据为多个命令中的每个命令的输出指定格式。
18.权利要求15的程序存储设备,其特征在于所述处理步骤包括对所述命令行进行语法分析以解码所述命令和处理所述命令以产生所述输出的步骤。
19.权利要求15的程序存储设备,其特征在于,所述处理步骤包括以下步骤对所述命令行进行语法分析以得到对特定配置数据的指定,如果所述特定配置数据被所述命令行指定,则根据所述特定配置数据对所述输出格式化。
20.权利要求15的程序存储设备,其特征在于,所述处理步骤包括以下步骤对所述命令行进行语法分析以得到忽略所述配置数据的标志,如果在所述命令行中含有所述标志,则与所述配置数据无关地对所述输出格式化。
全文摘要
一种用于在UNIX操作系统或具有命令外壳的其它操作系统中定制用户命令的输出的方法和装置。配置文件为一个或多个用户命令的每个指定输出格式。命令外壳响应接收到用户命令,处理该命令以产生输出并根据该配置文件对输出格式化。配置文件可为命令整体地指定诸如色彩和字体等属性,也可为命令的指定字段指定这些属性。配置文件可以是默认的配置文件或者可以在命令行中指定。命令行还可包含标志,该标志指示不使用配置文件,而采用默认属性。
文档编号G06F7/00GK1508678SQ20031012143
公开日2004年6月30日 申请日期2003年12月16日 优先权日2002年12月17日
发明者A·A·豪斯克尼特, S·艾杰奥马, A A 豪斯克尼特, 馨侣 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1