电脑技术学习

如何在Unix结果中抽取想要的参数

dn001

  二、set命令的具体实现过程以及需要注意的内容。

  在谈set命令的具体实现过程之前,笔者先跟大家介绍一些位置参数与命令显示结果之间的关系。了解他们的内在关系是系统工程师使用操作位置参数命令的前提。如上图所示,利用date命令显示出“Mon Apr 20 08:29:40 CST 2009系统的当前时间的结果。这个结果从左到右其对应的存储位置分别为$1、$2等等,以此类推。也就是说,这个显示结果就好像其他开发程序中的数组,系统利用空格来区分字段,并把每个字段的内容依次存入到数组中。不过这里需要注意的是,其他开发程序的数组往往是从0开始。而在Unix系统中,这个位置参数则是从$1开始。为此系统工程师如果要截取第一个字段内容的话,则应该是$1而不是$0。笔者是先学C等开发语言平台,然后再学Unix系统。由于有了一个先入为主的观念,为此后来在使用set命令的时候,经常犯迷糊。故笔者提醒各位系统工程师,在这方面要特别注意显示结果内容与位置参数的对应关系,第一个字段对应的位置参数位$1。了解了这个内容之后,则利用set命令来操纵显示结果则就比较容易了。如上图所示,通常情况下只需要通过简单的两不就可以完成这个功能了。

  第一步:利用set命令把它的参数转换为位置参数。

  在使用这个命令之前,笔者认为系统工程师应该先明白一个道理。就是默认情况下,命令的输出结果其往往都是显示在终端中,或者通过重定向符号显示在一个特定的文件中。但是无论是哪一种显示方式,其往往不会跟位置参数关联起来。如上图中,一开始运行一个date命令时,会输出相应的时间信息。此时这个输出结果中有6个字段,但是其根本没有跟位置参数形成一一对应的关系。其只是一个简单的字符串而已。如果系统工程师要利用惭怍位置参数命令从这个结果冲抽取内容的话,则一定需要把命令的结果转换为位置参数。而set命令就是用来实现这个目的的。

标签: