1 / 21
文档名称:

Unix Shell 编程简介.doc

格式:doc   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Unix Shell 编程简介.doc

上传人:yixingmaob 2014/11/22 文件大小:0 KB

下载得到文件列表

Unix Shell 编程简介.doc

文档介绍

文档介绍:Unix Shell 编程简介
第一节简介
什么是SHELL
SHELL常被看作UNIX系统的命令解释器,对于熟悉Windows用户,UNIX SHELL类似于DOS .Unix Shell 不仅仅是一个命令解释器,还是一个强大的编程语言,有着完整的条件语句\循环和函数.
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)
Bourne Shell
70年代中期由 Stephen &T贝尔实验室编写使用. Bourne Shell在多数UNIX版本中通常被安装在/bin/sh下.
三个主要缺点
1、没有文件名完整功能
2、没有命令历史或命令编辑
3、很难执行多个后台进程或任务
C Shell
C Shell 在80年代由Bill Shell在多数UNIX版本中通常被安装在/bin/csh下.
缺点:
输入输出控制比较弱
缺少函数
语法不清晰,比较混乱
优点
mand History).用户可以重复执行以前执行过的命令,在重新执行前还可以编辑命令.
别名(alias)可以为一条命令创建一个短的别名.
文件名完整(file pletion) 只输入文件的几个字符让C Shell 自动完整文件名.
任务控制(Job Controls),可以用job命令执行多个进程并控制.
TENEX/TOPS C Shell(tcsh)
是CShell的一个新版本,可以用向上向下的方向键浏览历史命令,用左右方向键来编辑命令.
Shell(ksh)
Ksh 与sh 完全兼容,增加一些额外特征
命令历史和历史替换
命令别名和函数
文件名完整
数组变量
内置整数运算
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。
#! /bin/sh必须位于脚本的第一行。以使用shell来运行脚本,如果在其他行中出现,所以shell都会把当作注释而忽略掉,在shell脚本中,注释以#开头,在#到行尾的所有的都被认为是注释。
例如
使用Bourne Shell
script 文件开头为
echo enter filename or #!/bin/sh
2. 使用C Shell
script 文件开头为
# C Shell Script or #!/bin/csh
3使用perl
script 文件开头为
#! /usr/bin/perl
除了在Script内指定所使用的Shell 外,你也可以在命令列中强制指定。比如你要用C Shell 执行某个Script,你可以