电脑技术学习

Unix中利用列表作为循环

dn001

  有时候可能列表比较大,如总共有100多个条目。虽然可以依次将这些条目写在for语句的循环列表中,但是会大大的增加代码的长度,从而影响其阅读。而且以后若要更改这些条目的话,还需要去更改这个源代码。显然这会很麻烦。如现在系统工程师需要查找在用户目录下,是否有用户想要的20个文件。这20个文件名字没有什么规律。正常情况下,用户需要一一输入文件名。文件名输入一个,然后查询一次。一共做二十次,显然这操作起来的工作量会非常的大。如果这个文件的数目再增加的话,那么操作起来就会更加的麻烦。在for循环中可以解决这个问题。即只需要在循环列表中将这20个文件名字输入进去,然后再操作语句中通过查询操作在指定目录中查找看是否有相关的文件。若有的话,将位置等信息保存到一个文件中。这就可以简化用户的操作,只需要进行一个for循环即可。同时还可以大幅度的缩短查询的时间。

  但是,此时遇到的一个问题就是要在for循环的循环列表中输入20个文件名字。为此系统工程师希望能够将这些文件的名字保存在文件中,然后让for循环从文件中读取这些内容。这即方便,而且也利于后续的调整。其实在for循环中,是支持从文件中读取相关的列表信息。不过这需要用到一个cat命令。大家都知道,这个cat命令的用途主要是从一个文件中读取相关的信息。如果用过管道符的系统工程师,一定知道,可以将某个命令的结果作为另外一个命令的参数。其实,在这里用到的也是这个原理,只是不需要通过管道符来实现而已。具体来说,这个循环列表可以如下定义。For name in ‘cat filename.txt’(注意,由于其读取后变为了文本的内容,为此需要加上单引号)。当for循环的列表很大,而且没有规律可循的话,虽然可以直接在循环列表中一一列出列表项,但这不是笔者所推荐的方法。笔者认为,遇到这种情况时,最好能够向上面笔者建议的,将列表项保存在一个文件中。然后在for循环的循环列表中利用cat命令进行读取。由于此时这个文件跟程序是相对独立的,为此以后若需要调整这个列表项的值,不需要修改源代码即可以实现。为此者也被认为是一种灵活性比较高的处理方式。如果列表项需要经常调整,那么即使列表项的内容不是很多,也可以通过这种方法来提高其灵活性。

标签: