快速业务通道

利用While解决文件等待问题

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-01
的基础,还需要一定的创新能力以及相当的工作经验的积累.为此笔者建议,要用好Unix操作系统或者Linux操作系统,那么在平时的工作中就要有意识的锻炼自己这种能力.

  其次需要了解操作语句的编写技巧.有时候为了实现某些特定的需求,往往在while循环结构内部的操作语句部分,不会写一些实际的操作语句.而是将操作语句写在循环的外部.如上面这个案例中,笔者在内部的操作语句部分,使用了语句sleep 30.这是什么意思呢?如果结合整个While循环结构,他的意思就是,如果条件满足的话(profile配置文件不可读,即不存在),则每个30秒执行以下这个循环.如果条件不满足的话(profile配置文件可读,即存在),则跳出这个循环,然后执行后续的语句.也就是说,此时笔者将真正要执行的操作(启动某个安装进程),放在了循环的外部.而在循环内部使用sleep 30,用来控制循环执行的时间.当然,在这个循环内部也可以写一些实际性的操作.如在屏幕上或者安装日志中显示一些“找不到配制文件”等类似的错误信息.往往这些类似友好的提示信息,可以提高程序的友好性.类似的处理机制还有很多.系统工程师需要在日常的工作中注意总结.另外,如果多看看其他工程师编写的脚本程序,往往能够从中获取不少有价值性的内容.模仿往往是在最短时间内增强自己业务能力的捷径. 拥有帝国一切,皆有可能。欢迎访问phome.net

  就是需要注意书写格式与规范方面的内容.在编写循环结构时,无论是while循环还是for循环,如果能够有意识的采用TAB键或者空格键,可以明显的提高代码的可读性.如循环内部结构的执行语句最好能够跟do或者done等关键字分行写,并且采用缩进的格式.虽然即时不遵守这些规则,脚本程序也没有实质性的影响.但是,对后续维护阅读的时候,会增加不少的困难.特别是当循环内部语句比较多的时候.对于这些代码编写规范,系统工程师最好还是需要遵守.毕竟对于一些复杂的功能,需要团队合作才能够实现.如果大家都能够遵守同一的书写规范,那么无疑可以提高团队的协作型.还有就是需要注意语法方面的内容,不do后面没有分号结尾符等等.这些语法性的错误系统在执行时会告知,问题不大.只是会增加返工的几率与工作量而已.

  三、利用while实现无限循环.

  如上面那个数据库异地备份的案例,其实若能够通过无限循环来实现可能会更加的合适.如让操作系统每隔30分钟来执行一次循环.循环内不能的操作就是先利用if语句来判断备份文件是否在30分钟内更新过.如果有更新的话,就将其复制或者移动到远程的服务器上.不管有没有更新,这个循环的话,每30分钟就需要执行一次.此时就需要用到无限循环.利用while循环条件的含义,这个无限循环很容易实现,只需要循环条件语句设置为true即可.即while true ; do 操作语句 ;done &.

  在这个循环结构中,笔者采用true作为循环条件,其循环条件永远为真,那么操作系统就会一直循环下去,直到用户手工终止.另外需要注意的是,如果循环语句比较简单,可以在同一行中书写.只是在中间合适的位置(如关键字之前)需要加以分号来进行识别.另外,为了避免对其他进程进行干扰,最好将这些无限循环的操作放置到后台运行,这可以保障各个进程之间相对的独立性.此时只需要在done关键字后面加入&符号即可,就可以告诉操作系统将这个无限循环放入到后台运行.

  不过在编写无限循环的时候,需要注意死循环的发生.如循环内部的某个操作比较耗时.在这个操作还没有完成之前,新的循环又开始了.这久而久之,必将耗尽系统资源.为此,在程序内部最好还是需要设置一些条件,如CPU等资源的使用程度,来强制结束无限循环.笔者认为这是比较安全的处理方式,可以有效的避免无限循环影响操作系统性能. 拥有帝国一切,皆有可能。欢迎访问phome.net

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号