《Shell学习心得》PPT课件_第1页
《Shell学习心得》PPT课件_第2页
《Shell学习心得》PPT课件_第3页
《Shell学习心得》PPT课件_第4页
《Shell学习心得》PPT课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Shell编程学习总结陈 龙12021/4/1内容nShell概述 nShell语法22021/4/1Shell概述 (特点)oShell是解释性的,多数高级语言是编译性的;oShell语言与高级语言处理的对象不同;oShell与系统有密切的关系;oShell易编写、调试、灵活性较强,但速度低;oShell作为命令级语言,命令组合功能很强。32021/4/1Shell概述 (种类)osh - Bourne Shell,是最常用的Shell,标准shell(有时安装成bsh)。oksh - Korn Shell,由Bourne Shell通过增加History和命令行编辑功能演变而来。osh -

2、 POSIX Shell,与Korn Shell相似,是Bourne Shell的高级版本。POSIX标准要求被安装成sh。ocsh - C Shell,是基于C语言的Shell。obash - Born Again Shell(bash),是Korn Shell的超集,又包括不少C Shell语法。但不常用。Redhat Linux缺省的shell。otcsh - C Shell的一个版本,包括交互式的命令行编辑。ozsh - Z Shell是复杂的,但却具有优良特性的Shell。它能模拟Korn、C或POSIX Shell。也不常用。 42021/4/1Shell概述 (语法类型)oShe

3、ll有两种主要语法类型:Bourne和C,彼此不兼容nBourne家族:sh ksh bash psh zshnC 家族:csh tcsh n其中: bash和 zsh在不同程度上支持 csh 的语法n本文档提到的语法,以bsh为主52021/4/1Shell概述 (常用命令)o大致划分为以下几类:目录操作与管理、文件操作与管理命令、系统管理与维护、用户管理与维护、 系统状态、进程管理、通讯命令 、 其它命令 nawknbcbgncatchmodchowncpcronndate dfdiff dunechoexprnfilefind fgngrepninitnkill nln loginnls

4、mail makeman mkdir mkfs mount mvnnohupnpg pwdps pr pwd nread rmnsedsortsyncntailteenwc62021/4/1Shell语法o1. 如果Script的第一个非空白字符不是#,则它会使用Bourne Shell。 o2. 如果Script的第一个非空白字符是#时,但不以#!开头时,则它会使用C Shell。 o3. 如果Script以“#!”开头,则“#!”后面所写的就是所使用的Shell,而且要将整个路径名称指出来。 o建议使用第三种方式指定Shell ,以确保所执行的就是所要的。Bourne Shell的路径名称

5、为/bin/sh ,而C Shell 则为/bin/csh。72021/4/1Shell语法 (变量)o用户自定义变量用户自定义变量o特殊变量特殊变量o系统环境变量系统环境变量o数组变量数组变量82021/4/1Shell语法 (变量)o用户自定义变量用户自定义变量n用户定义的变量由字母或下划线打头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。n在使用变量值时,要在变量名前加上前缀“$”n如果用双引号“”将值括起来,则括起来的字符串允许出现空格、制表符和换行符的特殊字符,而且允许有变量替换n如果用单引号将值括起来,则括起来的字符串允许出现空格、制表符和换行符的特殊

6、字符,但不允许有变量替换n引用变量的值时,可以用花括号将变量名称括起来,使变量名称与它的后续字符分隔开92021/4/1Shell语法 (变量)o特殊变量特殊变量$* 这个程序的所有参数 $# 这个程序的参数个数 $ 这个程序的PID $! 上一个后台指令的PID $? 上一个指令的返回值102021/4/1Shell语法 (变量)o系统环境变量系统环境变量n /etc/profile:定义系统全局的工作环境,用户主目录下的.profile:定义该用户的工作环境n主要环境变量有: HOME 用户主目录 PATH 搜索路径 PS1 shell提示符 PWD 用户当前所处的目录 MAIL 邮箱的路

7、径 TERM 使用的终端类型112021/4/1Shell语法 (变量)o数组变量数组变量n在bash中,多个元素的设置方式如下: name=(value1 value2 valuen)array=(a b c d e) 这样:$array0=a $array3=d 122021/4/1Shell语法 (条件控制)oIf、then、else语法if 条件1then 命令1elif 条件2then 命令2else 命令3fi例子:#!/bin/shif $# -ne 2 ; then echo Not enough parameters exit 0fiif $1 -eq $2 ; then e

8、cho $1 equals $2elif $1 -lt $2 ; then echo $1 littler than $2elif $1 -gt $2 ; then echo $1 greater than $2fi132021/4/1Shell语法 (条件控制)ocase语法 case value in pattern1) command11 command1n; pattern2) command21 command2n; patternn) commandn1 commandnn;esac例子:#! /bin/shread opcase $op in C) echo your selec

9、tion is Copy ; D) echo your selection is Delete ; B) echo your selection is Backup ; *) echo invalide selectionesac142021/4/1Shell语法 (条件控制)ofor语法 1. for variable in arg1 arg2 argndocommand command done 2. for ( 初始值; 限制值; 执行步骤 )do程式段done例子:#!/bin/bashfor DAY in Sunday Monday Tuesday Wednesday Thursda

10、y Friday Saturdaydo echo The day is : $DAYdone152021/4/1Shell语法 (条件控制)owhile语法n只要测试条件保持为真时就继续执行。一旦条件为假,它就终止执行。while commanddocommanddone例子:#! /bin/shnum=1while $num -le 10 do square=expr $num * $num echo $square num=expr $num + 1doneountil语法n只要测试条件保持为假时就继续执行。一旦条件为真,它就终止执行。 until condition do command

11、 block done#! /bin/shnum=10until $num -le 0 do square=expr $num * $num echo $square num=expr $num - 1done162021/4/1Shell语法 (计算方法)shell 默认是用来处理字符串的,所以如果你直接运行: echo 1+1 它会直接输出1+1,而不会输出2。 如果需要计算表达式的值,则只需用“$(” 和 “)”将表达式括起。 echo $(1+1) 172021/4/1Shell语法 (条件控制)1.break 是用来打断循环,也就是“强迫结束” 循环。2.若 break 后面指定一个

12、数值 n 的话,则从里向外打断第 n 个循环.3.默认值为 break 1 ,也就是打断当前的循环。在使用 break 时需要注意的是, 它与 return 及 exit 是不同的:1.break 是结束 loop 2.return 是结束 function3.exit 是结束 script/shell1.continue是强迫进入下一次循环动作。2.简单的看成:continue 到 done 之间的句子略过而返回循环顶端.3.continue 后面也可指定一个数值 n ,以决定继续哪一层(从里向外计算)的循环,默认值为 continue 1 ,也就是继续当前的循环。 182021/4/1Sh

13、ell语法 (函数)o函数的定义: 函数名 () 命令序列 o函数的调用:不带() 函数名 参数1 参数2 oshell中是不能直接获得函数的返回值的,如果你要用函数返回值,只能用全局变量传输。oshell中的变量默认都是全局的,除非你在前面加了local修饰符。oshell会把函数返回值放在$?全局变量中,你可以用$? 来取得前个函数调用的返回值。$*可以获得函数的所有输入参数,$1表示第一个参数,以此类推。 例子add() result=0 for n in $* do result=$($result+$n) done return $result 执行: add 1 2 3 echo $? echo $result 输出结果都为 6 192021/4/1Shell语法 (函数)oset 函数o功能说明:设置shell。o语法:s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论