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

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

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

Unix系列shell程序编写(中)

Yesky 2001-12-20 18:07 我要吐槽

  若expr的一个参数是变量,那么在表达式计算之前用变量值替换变量名。
    $int=3
    $expr $int + 4
    结果显示:7
  用户不能单纯使用"*"做乘法,若输入:
    $expr 4*5
  系统将会报错,因为Shell看到"*"将会首先进行文件名替换。正确形式为:
    $expr 4 \* 5
     结果显示:20
  多个算术表达式可以组合在一起,例如:
    $expr 5 + 7 / 3
    结果显示:7
  运算次序是先乘除后加减,若要改变运算次序,必须使用"`"号,如:
    $int=`expr 5 + 7`
    $expr $int/3
     结果显示:4
    或者:
    $expr `expr 5+7`/3
    结果显示:4

  6>向Shell程序传递参数

  一个程序可以使用两种方法获得输入数据。一是执行时使用参数。另一种方法是交互式地获得数据。vi编辑程序可以通过交互式的方法获得数据,而ls和expr则从参数中取得数据。以上两种方法Shell程序都可以使用。在"交互式读入数据"一节中将介绍Shell程序通过交互式的方法获得参数。

  通过命令行给Shell程序传递参数可以扩大程序的用途。以前面提到的ba.sh程序为例:
  $cat >re.sh
  cd $workdir
  cpio -i < /dev/fd0
  ^d

  程序re.sh恢复了ba.sh程序备份的所有文件。若只从软盘上恢复一个指定的文件,可以用该文件名作为参数,传递给Shell程序re.sh:

  程序改写如下:
  $cat >re2.sh
  cd $workdir
  cpio -i $1 < /dev/fd0
  ^d

  用户可以指定要恢复的文件,例如fname

  $re2.sh fname

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