linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > unix > unix提高 >
栏目导栏
资料搜索
热门文章
·20%的SOLARIS知识解决80%的问题
·Solaris启动过程详解 zt
·查看Solaris系统硬件配置的命令
·Unix系列shell程序编写(中)
·STRUTS 源码学习笔记
·SOLARIS技巧篇
·snort源码分析
·Unix系列shell程序编写(下)
·在solaris 10/x86下安装oracle
·solaris 10 硬盘安装
·Solaris安全配置手册
·Apache源代码分析——关于模块
·HP-UX基本指令快速参考
· Tomcat Server源码启动分析
·Solaris8 双网卡配置(路由器用
最新文章
·solaris系统安全配置
·RHEL5.0操作系统下NFS服务的配
·Solaris Linux 9下Vsftpd的配置
·在HP-UX下建立只归属于某个目录
·SolarWinds2002使用说明
·从外部存储划盘并加入vg,为fs扩
·因带库问题导致系统光纤卡报错
·Unix下多线程中条件变量的使用
·UNIX和Linux中信号的个数
·不同的类UNIX操作系统密码破解
·AIX系统下Domino邮件服务器安装
·限制ROOT用户远程登陆UNIX系统
·Unix操作系统入侵追踪反击战
·AIX CDE不能启动的故障一般性解
·CentOS4.4用VSFTPD架设FTP服务
Google
 
Unix系列shell程序编写(中)
[ 作者:Linux联盟收集  加入时间:2006-06-24 15:08:01  来自:Linux联盟收集 ]
   echo "操作成功!" TmkLinux联盟
fi
TmkLinux联盟
  TmkLinux联盟
  TmkLinux联盟
  在上面代码中,"*"定义了其他模式下不匹配时的默认操作。 TmkLinux联盟
TmkLinux联盟
循环语句 TmkLinux联盟
TmkLinux联盟
  前面介绍的程序和所学的语句都是从头到尾成一条主线下来,或是成分支结构,在日常管理UNIX的过程中,经常要重复的做一些操作,处理批量的问题,这就涉及到了循环结构,同高级语言相似,UNIX的Shell也提供了强大的循环处理语句。 TmkLinux联盟
TmkLinux联盟
  Bsh语言中有三种循环语句-while循环、until循环、for循环,下面通过具体的例子分别介绍这三种结构。 TmkLinux联盟
TmkLinux联盟
While循环 TmkLinux联盟
TmkLinux联盟
  在while循环语句中,当某一条件为真时,执行指定的命令。语句的结构如下: TmkLinux联盟
TmkLinux联盟
while command TmkLinux联盟
do TmkLinux联盟
  command TmkLinux联盟
  command TmkLinux联盟
  … … TmkLinux联盟
done TmkLinux联盟
TmkLinux联盟
示例代码如下: TmkLinux联盟
TmkLinux联盟
#测试while循环小程序 TmkLinux联盟
TmkLinux联盟
x_t=1 TmkLinux联盟
  while [ $x_t -lt 5 ] TmkLinux联盟
  do TmkLinux联盟
     mm=` expr $x_t * $int `  #注意""的作用 TmkLinux联盟
     echo "$mm" TmkLinux联盟
     x_t=` expr $x_t + 1 `   #注意expr的用法 TmkLinux联盟
  done TmkLinux联盟
  echo "THE WHILE IS END!n" TmkLinux联盟
TmkLinux联盟
程序的执行结果如下: TmkLinux联盟
1 TmkLinux联盟
4 TmkLinux联盟
9 TmkLinux联盟
16 TmkLinux联盟
THE WHILE IS END TmkLinux联盟
TmkLinux联盟
  在上述程序中,当变量x_t的值小于5的时候,执行while循环中的语句。在第五次循环时, [ $x_t-lt5]命令返回非零值,于是程序执行done后面的代码。 TmkLinux联盟
现在利用while循环,可以改进我们早些时候用的备份数据的例子,当用户指定的目录备份完毕后,使用while循环使程序执行一次可以备份多个用户指定的目录。代码如下: TmkLinux联盟
TmkLinux联盟
echo "欢迎使用备份小程序" TmkLinux联盟
TmkLinux联盟
  ANS=Y TmkLinux联盟
  while [ $ANS = Y -o $ANS = y ] TmkLinux联盟
  do TmkLinux联盟
    echo _ TmkLinux联盟
    #读目录名 TmkLinux联盟
    echo "输入要备份的目录名:c" TmkLinux联盟
    read DIR TmkLinux联盟
    if [ ! -d $DIR ] TmkLinux联盟
    then TmkLinux联盟
        echo "$DIR不是一个目录!" TmkLinux联盟
        exit 1 TmkLinux联盟
    fi TmkLinux联盟
    cd $DIR TmkLinux联盟
    echo "请选择:" TmkLinux联盟
    echo _ TmkLinux联盟
    echo "1 恢复数据到 $DIR" TmkLinux联盟
    echo "2 备份$DIR的数据" TmkLinux联盟
    echo TmkLinux联盟
    echo "请选择:c" TmkLinux联盟
    read CHOICE TmkLinux联盟
    case "$CHOICE" in TmkLinux联盟
       1) echo "恢复中… …" TmkLinux联盟
        cpio -i        2) echo "备份中… …" TmkLinux联盟
        cpio -o >/dev/rmt0;; TmkLinux联盟
       *) echo "选择无效" TmkLinux联盟
    esac TmkLinux联盟
    if [ $? -ne 0 ] TmkLinux联盟
    then TmkLinux联盟
       echo "cpio执行过程中出现问题" TmkLinux联盟
       exit 2 TmkLinux联盟
    fi TmkLinux联盟
    echo "继续别的目录吗?(Y/y)c" TmkLinux联盟
    read ANS TmkLinux联盟
  done TmkLinux联盟
TmkLinux联盟
  在程序开始,我们给变量ANS符值为Y,根据whlie的判断条件,程序进入while循环,执行do-done中的语句,每次循环都要求用户输入ANS的值用来判断是否进行下次重复执行do-done中的语句。如果用户输入的条件不满足while语句条件,循环结束,程序执行done后 Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
分页:1 2 [3]
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Unix系列shell程序编写(上)  (2006-06-24 15:06:12)