天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网>新闻>

Unix系列shell程序编写(中)

Yesky 2001-12-20 18:07 我要吐槽
  当Bsh遇到一个read语句时,在标准输入文件中读取数据直到一个换行符。此时Shell在解释输入行时,不进行文件名或变量的替换,只是简单地删除多余的空格。然后Shell将输入行的第一个字的内容给变量1,第二个给变量2,直到所有变量都赋上值或是输入行为空。若输入行中字的个数超过变量个数,Shell将把输入行中剩余的所有字的内容都赋给最后一个变量。当变量个数多于输入行字的个数时候,多于的变量将赋一个空值。输入行的每一个字是由空格分隔的一个字母和数字组成的字符串。

  $read var1 var2 var3
    输入:Hello my friend
  
  $echo $var1 $var2 $var3
    结果显示:Hello my friend
  $echo $var2
    结果显示:my

下面用个read和case的例子结束本部分的学习:

  #--交互式备份,恢复程序
  echo "输入要备份文件所在目录:\c"
  read WORKDIR
  if [ !-d $WORKDIR ]
  then
    echo "Sorry,$WORKDIR is not a directory"
    exit 1
  fi
  cd $WORKDIR
  echo "输入选择:"
  echo _
  echo "1.恢复到 $WORKDIR"
  echo "2.备份 $WORKDIR"
  echo "0.退出"
  echo
  echo "\c"
  read CHOICE
  case "$CHOICE" in
   1)echo "恢复中... ..."
    cpio -i < /dev/mnt0;;
   2)echo "备份中... ..."
    ls | cpio -o > /dev/mnt0;;
   0)exit 1
   *)exit 1
  esac
  if [ $? -ne 0 ]
  then
   echo "程序运行中出现错误!"
  else
   echo "操作成功!"
  fi  
 
  在上面代码中,"*"定义了其他模式下不匹配时的默认操作。
 
循环语句

  前面介绍的程序和所学的语句都是从头到尾成一条主线下来,或是成分支结构,在日常管理UNIX的过程中,经常要重复的做一些操作,处理批量的问题,这就涉及到了循环结构,同高级语言相似,UNIX的Shell也提供了强大的循环处理语句。

  Bsh语言中有三种循环语句-while循环、until循环、for循环,下面通过具体的例子分别介绍这三种结构。

作者: 责任编辑:)
请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电