Unix的 Shell 编程简介.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unix Shell 编程简介 第一节 简介 1.1 什么是SHELL SHELL常被看作UNIX系统的命令解释器,对于熟悉Windows用户,UNIX SHELL类似于DOS Shell,COMMAND.COM.Unix Shell 不仅仅是一个命令解释器,还是一个强大的编程语言,有着完整的条件语句\循环和函数. 1.2 SHELL的类型 在UNIX中主要有两种主要类型的SHELL: * Bourne Shell(包括sh、ksh、 bash) * C Shell(包括csh和 tcsh) Bourne 类型的Shell的,缺省的提示符是$,如果是C类型的SHELL, 缺省的提示符是%. 不同类型的Bourne Shell如下: *Bourne Shell(sh) *Korn Shell(ksh) *Bourne Again Shell(bash) *POSLX Shell 不同类型的C Shell如下: *C Shell(csh) *TENEX/TOPS C Shell(tcsh) 1.2.1 Bourne Shell 70年代中期由 Stephen R.Bourne在ATT贝尔实验室编写使用. Bourne Shell在多数UNIX版本中通常被安装在/bin/sh下. 三个主要缺点 1、没有文件名完整功能 2、没有命令历史或命令编辑 3、很难执行多个后台进程或任务 1.2.2 C Shell C Shell 在80年代由Bill Toy在加州大学伯克利分校开发.C Shell在多数UNIX版本中通常被安装在/bin/csh下. 缺点: 输入输出控制比较弱 缺少函数 语法不清晰,比较混乱 优点 命令历史(Command History).用户可以重复执行以前执行过的命令,在重新执行前还可以编辑命令. 别名(alias)可以为一条命令创建一个短的别名. 文件名完整(file Name Completion) 只输入文件的几个字符让C Shell 自动完整文件名. 任务控制(Job Controls),可以用job命令执行多个进程并控制. 1.2.3 TENEX/TOPS C Shell(tcsh) 是CShell的一个新版本,可以用向上向下的方向键浏览历史命令,用左右方向键来编辑命令. 1.2.4Korn Shell(ksh) Ksh 与sh 完全兼容,增加一些额外特征 命令历史和历史替换 命令别名和函数 文件名完整 数组变量 内置整数运算 1.2.5 Bourne Again Shell(bash) Bourne Again Shell(bash)是作为GUN的一部分开发的,也已经在linux这样的系统中取代了sh,包含了C Shell Korn Shell特征,保留了与sh语法兼容,几乎可以运行所有的Bourne Shell脚本. 注:以下解释如果没有特别指出,都是基于Bourne Shell脚本 一个简单的shell Scrip文件 1 #! /bin/sh 2 echo “please input the number of loop:” 3 read num 4 while [ $num –lt 10 ] 5 do 6 echo $num 7 num=`echo :$num_1”|bc` 8 done 解释 #! /bin/sh 1. 如果Script的第一个非空白字不是#,则它会使用Bourne Shell。 2. 如果Script的第一个非空白字是#时,但不以#!开头时,则它会使用C Shell。 3. 如果Script以#!开头,则#!後面所写的就是所使用的Shell,而且要将整个路径名称指出来。 建议使用第三种方式指定Shell ,以确保所执行的就是所要的。Bourne Shell的路径名称为/bin/sh ,而C Shell 则为/bin/csh。使用Bourne Shellecho enter filename or #!/bin/sh 2. 使用C Shell # C Shell Script or #!/bin/csh 3使用perl#! /usr/bin/perl 除了在Script内指定所使用的Shell 外,你也可以在命令列中强制指定。比如你要用C Shell 执行某个Script,你可以下这个命令: csh filename 此时的Script的存取权就不一定要为可执行档,其内部所指定的Shell 也会无效 –lt 10 ] do echo $num num=`echo :$

文档评论(0)

xiaofei2001127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档