Unix系列shell程序编写(中)

来源:Yesky 作者: 2005-10-08 出处:pcdog.com

上一页 1 2 3 4 5 6 7 8 9 10 11 12 下一页 
  此时文件fname作为第一个位置参数传递给re2.sh,re2.sh的缺点是要恢复两个或多个文件要重复运行,我们可以用$*变量传递不确定的参数给程序:

  $cat >re3.sh
  cd $workdir
  cpio -i $* < /dev/fd0
  ^d

  我们就可以恢复多个文件,例如fname1,fname2,fname3
  $re3.sh fname1 fname2 fname3
  (以上程序re.sh,re2.sh,re3.sh,假设用户已经chmod了可执行权利)

  因为没有赋值的变量可以作为NULL看待,所以若是程序re3.sh在执行时候没赋予参数,那么一个空值将被插入到cpio命令中。该命令将恢复所有保存的文件。
 
条件判断语句

  条件判断语句是程序设计语言中十分重要的语句,该语句的含义是当某一条件满足时,执行指定的一组命令。

1>if - then语句

  格式: if command1
     then
       command2
       command3
     fi      ---(if 语句结束)
       command4

  每个程序或命令执行结束后都有一个返回的状态,用户可以用Shell变量$?获得这一状态。if语句检查前面命令执行的返回状态,若该命令成功执行,那么在then和fi之间的命令都将被执行。在上面的命令序列中,command1和command4总要执行。若command1成功执行,command2和command3也将执行。

  请看下面程序:
    #unload -program to backup and remove files
    cd $1
    ls -a | cpio -o > /dev/mnt0
    rm *

  该程序在备份资料后,删除档案,但当cpio命令不能成功执行时,rm命令还是把资料删除了,我们可不希望这样,为了避免此情况,可以用if - then语句:
    #--卸载和判断删除程序

    cd $1
    if ls -a | cpio > /dev/mnt0
    then
      rm *
    fi
  上面程序在cpio执行成功后才删除档案

上一页 1 2 3 4 5 6 7 8 9 10 11 12 下一页 
上一篇:下一篇:UNIX下几种常见系统故障和解决办法