已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,Shell编程学习总结,陈龙,内容,Shell概述Shell语法,Shell概述(特点),Shell是解释性的,多数高级语言是编译性的;Shell语言与高级语言处理的对象不同;Shell与系统有密切的关系;Shell易编写、调试、灵活性较强,但速度低;Shell作为命令级语言,命令组合功能很强。,Shell概述(种类),sh-BourneShell,是最常用的Shell,标准shell(有时安装成bsh)。ksh-KornShell,由BourneShell通过增加History和命令行编辑功能演变而来。sh-POSIXShell,与KornShell相似,是BourneShell的高级版本。POSIX标准要求被安装成sh。csh-CShell,是基于C语言的Shell。bash-BornAgainShell(bash),是KornShell的超集,又包括不少CShell语法。但不常用。RedhatLinux缺省的shell。tcsh-CShell的一个版本,包括交互式的命令行编辑。zsh-ZShell是复杂的,但却具有优良特性的Shell。它能模拟Korn、C或POSIXShell。也不常用。,Shell概述(语法类型),Shell有两种主要语法类型:Bourne和C,彼此不兼容Bourne家族:shkshbashpshzshC家族:cshtcsh其中:bash和zsh在不同程度上支持csh的语法本文档提到的语法,以bsh为主,Shell概述(常用命令),大致划分为以下几类:目录操作与管理、文件操作与管理命令、系统管理与维护、用户管理与维护、系统状态、进程管理、通讯命令、其它命令awkbcbgcatchmodchowncpcrondatedfdiffduechoexprfilefindfggrepinitkilllnloginlsmailmakemanmkdirmkfsmountmvnohuppgpwdpsprpwdreadrmsedsortsynctailteewc,Shell语法,1.如果Script的第一个非空白字符不是#,则它会使用BourneShell。2.如果Script的第一个非空白字符是#时,但不以#!开头时,则它会使用CShell。3.如果Script以“#!”开头,则“#!”后面所写的就是所使用的Shell,而且要将整个路径名称指出来。建议使用第三种方式指定Shell,以确保所执行的就是所要的。BourneShell的路径名称为/bin/sh,而CShell则为/bin/csh。,Shell语法(变量),用户自定义变量特殊变量系统环境变量数组变量,Shell语法(变量),用户自定义变量用户定义的变量由字母或下划线打头,由字母、数字或下划线序列组成,并且大小写字母意义不同。变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”如果用双引号“”将值括起来,则括起来的字符串允许出现空格、制表符和换行符的特殊字符,而且允许有变量替换如果用单引号将值括起来,则括起来的字符串允许出现空格、制表符和换行符的特殊字符,但不允许有变量替换引用变量的值时,可以用花括号将变量名称括起来,使变量名称与它的后续字符分隔开,Shell语法(变量),特殊变量$*这个程序的所有参数$#这个程序的参数个数$这个程序的PID$!上一个后台指令的PID$?上一个指令的返回值,Shell语法(变量),系统环境变量/etc/profile:定义系统全局的工作环境,用户主目录下的.profile:定义该用户的工作环境主要环境变量有:HOME用户主目录PATH搜索路径PS1shell提示符PWD用户当前所处的目录MAIL邮箱的路径TERM使用的终端类型,Shell语法(变量),数组变量在bash中,多个元素的设置方式如下:name=(value1value2valuen),array=(abcde)这样:$array0=a$array3=d,Shell语法(条件控制),If、then、else语法if条件1then命令1elif条件2then命令2else命令3fi,例子:#!/bin/shif$#-ne2;thenechoNotenoughparametersexit0fiif$1-eq$2;thenecho$1equals$2elif$1-lt$2;thenecho$1littlerthan$2elif$1-gt$2;thenecho$1greaterthan$2fi,Shell语法(条件控制),case语法casevalueinpattern1)command11command1n;pattern2)command21command2n;patternn)commandn1commandnn;esac,例子:#!/bin/shreadopcase$opinC)echoyourselectionisCopy;D)echoyourselectionisDelete;B)echoyourselectionisBackup;*)echoinvalideselectionesac,Shell语法(条件控制),for语法1.forvariableinarg1arg2argndocommandcommanddone2.for(初始值;限制值;执行步骤)do程式段done,例子:#!/bin/bashforDAYinSundayMondayTuesdayWednesdayThursdayFridaySaturdaydoechoThedayis:$DAYdone,Shell语法(条件控制),while语法只要测试条件保持为真时就继续执行。一旦条件为假,它就终止执行。whilecommanddocommanddone,例子:#!/bin/shnum=1while$num-le10dosquare=expr$num*$numecho$squarenum=expr$num+1done,until语法只要测试条件保持为假时就继续执行。一旦条件为真,它就终止执行。untilconditiondocommandblockdone,#!/bin/shnum=10until$num-le0dosquare=expr$num*$numecho$squarenum=expr$num-1done,Shell语法(计算方法),shell默认是用来处理字符串的,所以如果你直接运行:echo1+1它会直接输出1+1,而不会输出2。如果需要计算表达式的值,则只需用“$(”和“)”将表达式括起。echo$(1+1),Shell语法(条件控制),1.break是用来打断循环,也就是“强迫结束”循环。2.若break后面指定一个数值n的话,则从里向外打断第n个循环.3.默认值为break1,也就是打断当前的循环。在使用break时需要注意的是,它与return及exit是不同的:1.break是结束loop2.return是结束function3.exit是结束script/shell1.continue是强迫进入下一次循环动作。2.简单的看成:continue到done之间的句子略过而返回循环顶端.3.continue后面也可指定一个数值n,以决定继续哪一层(从里向外计算)的循环,默认值为continue1,也就是继续当前的循环。,Shell语法(函数),函数的定义:函数名()命令序列函数的调用:不带()函数名参数1参数2shell中是不能直接获得函数的返回值的,如果你要用函数返回值,只能用全局变量传输。shell中的变量默认都是全局的,除非你在前面加了local修饰符。shell会把函数返回值放在$?全局变量中,你可以用$?来取得前个函数调用的返回值。$*可以获得函数的所有输入参数,$1表示第一个参数,以此类推。,例子add()result=0fornin$*doresult=$($re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年齐齐哈尔辅警招聘考试真题(含答案详解)
- 2024年安徽辅警协警招聘考试备考题库含答案详解(模拟题)
- 2023年贵阳辅警招聘考试题库附答案详解(典型题)
- 延安职业技术学院《音乐技能(声乐基础)》2024-2025学年第一学期期末试卷
- 大连海洋大学《建筑设计及理论3》2024-2025学年第一学期期末试卷
- 南京艺术学院《中外文学史》2024-2025学年第一学期期末试卷
- 2025年黑龙江省铁力市第一中学高二上生物期末检测模拟试题含解析
- 2026届重庆市江津中学、合川中学等七校高生物高二第一学期期末联考试题含解析
- 2025-2026学年四川省简阳市化学高二第一学期期末达标检测模拟试题含解析
- 长春市第八十七中学2025年生物高一上期末检测试题含解析
- DL-T-1798-2018换流变压器交接及预防性试验规程
- KA-T 21-2024 模袋法尾矿堆坝技术规程
- 七年级数学(上)有理数混合运算100题(含答案)
- 葡萄膜炎与红眼鉴别
- 医疗器械生产中的数据分析与统计
- 初中数学归纳与类比强化练习
- 住房公积金追缴授权委托书
- 《工贸企业重大事故隐患判定标准》
- 超声基础知识及临床应用演示
- 2022-2023部编新人教版小学6六年级数学上册(全册)教案
- 手电筒产品课程设计报告书
评论
0/150
提交评论