快速业务通道

(chenfeiyao8)Linux的shell编程2

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-25

--------------------------------------------------------------------------------
(chenfeiyao8)Linux的shell编程2

http://chenfeiyao8.blog.51cto.com 作者:chenfeiyao8
--------------------------------------------------------------------------------
  接下来以bash为例向大家介绍shell程序设计的高级部分:shell编程的流程控制、调试方法及shell程序的运行方法,顺便也向大家介绍一下bash的内部命令.

  四、shell程序设计的流程控制

  和其他高级程序设计语言一样,shell提供了用来控制程序执行流程的命令,包括条件分支和循环结构,用户可以用这些命令建立非常复杂的程序.

  与传统的语言不同的是,shell用于指定条件值的不是布尔表达式而是命令和字符串.

  1.test测试命令

  test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,其测试符和相应的功能分别如下:

  (1)数值测试:

  -eq:等于则为真

  -ne:不等于则为真

  -gt:大于则为真

  -ge:大于等于则为真

  -lt:小于则为真

  -le:小于等于则为真

  (2)字符串测试:

  =:等于则为真

  !=:不相等则为真

  -z字符串:字符串长度伪则为真

  -n字符串:字符串长度不伪则为真

  (3)文件测试:

  -e文件名:如果文件存在则为真

  -r文件名:如果文件存在且可读则为真

  -w文件名:如果文件存在且可写则为真

  -x文件名:如果文件存在且可执行则为真

  -s文件名:如果文件存在且至少有一个字符则为真

  -d文件名:如果文件存在且为目录则为真

  -f文件名:如果文件存在且为普通文件则为真

  -c文件名:如果文件存在且为字符型特殊文件则为真

  -b文件名:如果文件存在且为块特殊文件则为真

  另外,Linux还提供了与(“!”)、或(“-o)、非(“-a”)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低.

  同时,bash也能完成简单的算术运算,格式如下:

  $[expression]

  例如:var1=2

  var2=$[var1*10 1]

  则:var2的值为21.

  2.if条件语句

  shell程序中的条件分支是通过if条件语句来实现的,其一般格式为:

  if条件命令串

  then

  条件为真时的命令串

  else

  条件为假时的命令串

  fi

  3.for循环

  for循环对一个变量的可能的值都执行一个命令序列.赋给变量的几个数值既可以在程序内以数值列表的形式提供,也可以在程序以外以位置参数的形式提供.for循环的一般格式为:

  for变量名

  [in数值列表]

  do

  若干个命令行

  done

  变量名可以是用户选择的任何字符串,如果变量名是var,则在in之后给出的数值将顺序替换循环命令列表中的$var.如果省略了in,则变量var的取值将是位置参数.对变量的每一个可能的赋值都将执行do和done之间的命令列表.

  4.while和until循环

  while和until命令都是用命令的返回状态值来控制循环的.While循环的一般格式为:

  while

  若干个命令行1

  do

  若干个命令行2

  done

  只要while的“若干个命令行1”中一个命令的返回状态为真,while循环就继续执行do...done之间的“若干个命令行2”.

  until命令是另一种循环结构,它和while命令相似,其格式如下:

  until

  若干个命令行1

  do

  若干个命令行2

  done

  until循环和while循环的区别在于:while循环在条件为真时继续执行循环,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号