《shell脚本介绍》PPT课件.ppt_第1页
《shell脚本介绍》PPT课件.ppt_第2页
《shell脚本介绍》PPT课件.ppt_第3页
《shell脚本介绍》PPT课件.ppt_第4页
《shell脚本介绍》PPT课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

课程内容 什么是shell 基本思路 变量、条件、判断和程序控制 函数 调试 正则表达式 SHELL入门 什么是shell 用户与linux系统间的接口 功能强大 bash Shell程序的特点 可快速、简单地完成编程 适合于编写一些执行相对简单任务的小工 具 易于配置、维护和可移植 执行效率较低 各种shell Shell名 称 相关信息 sh(Bourn e) 源于Unix早期版本的最初shell csh,tcsh, zsh csh及其变体 ksh,pdks h 许多商业版本Unix的默认shel bash来自GNU项目,是linux的主要shell,它的优点是 可以免费获取其源代码,可移植性很好 管道和重定向 重定向输出 ls -l out.txt ls -l out.txt 以下命令可以让标准输出和错误输出分别 重定向 pkill sleep pkillout.txt 2pkillerr.txt pkill sleep pkillout.txt 2 do more $file done while循环 for特别适合于对一系列字符串进行处理, 而while适合于处理不知道执行次数的情况 while condition do statements done 示例,一个简单的密码验证程序 echo “Enter password:” read pass; while “$pass” != “abc123” ; do echo “Error, try again” read pass; done until语句 语法: until conditionn do statements done 与while相似,只是条件反过来了 until who | grep “$1” /dev/null do sleep 60 done echo e a echo “* $1 has just logged in*” case语句 语法 case var in pattern | pattern ) statements; pattern | pattern ) statements; esac 注意,每个模式行用双分号(;)结束 case “$var” in yes) echo yes; no) echo no; *) echo default; esac case语句 case 只匹配一个分支,即使其他的分支也 成立 case “$var” in yes | y | Yes | YES ) echo OK; n* | N* ) echo No; * ) echo other esac case “$var” in yes | y | Yes | YES ) echo OK; nN* ) echo No; * ) echo other esac 命令列表 and列表 statement1 result=“$(foo)” 可以使用local关键字在shell函数中声明局 部变量 return 0被认为是逻辑真 命令 命令 内部命令和外部命令 内部命令是由shell实现的,它不能做为外 部程序被调用,效率较高 大多数内部命令同时提供独立运行的程序 版本,这是PISOX规范所要求的 命令 break命令 用于跳出for,while until循环 :命令 空命令 有时会被用于简化条件逻辑,相当于true while : 被当作无限循环 $(var:=value) 以防止shell把var当作一个命令 continue 使for,while,untile跳到下一次循环 source和点(.) .命令 点(.)用于在当前shell中执行命令 通常,当脚本执行外部命令或脚本时,会创建 新的环境(子shell),但.可以让我们在当前环境 下执行命令 可以使用.让当前shell的环境设置改变 source 同.命令 echo 输出结尾带有换行的字符串 如何去掉换行符 Linux常用的解决方法: echo n “string to output” 还有: echo e “string to outputc” c表示去掉换行符 为了更好的移植性时,可考虑使用printf eval命令 允许对参数求值,shell的内置命令 foo=10 x=foo y=$x echo $y 以上代码结果为$foo foo=10 x=foo eval y=$x echo $y 结果为10 eval允许代码被随时生成并运行,非常有用 ,但调试复杂 exit n命令 使用脚本程序以退出码n结束运行 如果没有指定一个脚本的退出码,那最后 一条命令的状态将被用作返回值 在shell中,退出码0代表成功,1125是可 以使用的错误代码。其余数字具有保留含 义 退出码码说说明 126文件不可执行 127命令未找到 128及以上出现一个信号 export命令 将做为它参数的变量导出到子shell中有效 。默认情况下,一个shell中创建的变量在 子shell中是不可用的。 一旦一个变量被导出,它就可以被该shell 调用的任何脚本使用,也可以被后续依次 调用的任何shell使用 expr命令 将参数当作表达来求值 x=expr do echo “$1” shift done trap命令 指定当接收到信号后将要采取的行动 trap有两个参数: trap command signal 第一个参数是接收到信号所采取的行动,第二 个是什么信号 如果command为-,则会重置信号处理方式为默 认 如果command为,则会忽略某个信号 trap INT unset 从环境中删除变量和函数 foo=“Hello” echo $foo unset foo echo $foo 作用和foo=差不多,但不同 find命令 find path options tests actions 选项选项选项含义义 -depth在查看目录本身之前先搜索目录 的内容 -follow跟随符号链接 -maxdepths N最多搜索N层目录 -mount(或-xdev)不搜索其他文件系统 find命令 测试部分 测试测试含义义 -atime N 文件在N天之前被最后访问过 -mtime N文件在N天之前被最后修改过 -name pattern 文件名匹配提供的模式 -newer otherfile 文件比otherfile要新 -type c文件的类型为c, c是特殊类型,d为目 录 f为普通文件 -user username 文件拥有者是指定用户 find命令 组合测试 可以用圆括号改变测试的优先级,不过为 了不让shell 处理圆括号,需要进行转义 find . (-name “_*” or newer file2 ) type f - print 操作符,短格 式 操作符,长长格式 含义义 !-not测试取反 -a-and两个测试都必需为 真 -o-or两个测试有一个必 需为真 find命令 actions部分 find . newer file2 type f exec ls l ; 魔术字符串是-exec或-ok命令的一个特殊类型 ,它将被当前文件的完整路径取代 动动作含义义 -exec command执行一条命令,必需以;结束 -ok command与-exec类似,但在执行命令之前对 每个要处理的文件提示用户确认, 必需以;结束 -print默认动作,打印文件名 -ls对当前文件使用命令ls-dils grep命令 General Regular Expression Parse 通用正则表达式解析器 语法:greap options PATTERN FILES 如果没有提供文件名,将搜索标准输入 选项选项含义义 -c输出匹配行的数目 -E启用扩展表达式 -h取消每个输出行的普通前缀 -i忽略大小写 -l只列出包含匹配的文件名 -v模式取反 正则表达式 正则表达式本质是一个匹配字符串 特殊字符含义义 行首 $行尾 .任意单个字符 一个范围内的字符,或加表示不在一个 范围内的字符 正则表达式 匹配模式含义义 :alnum:字母与数字字符 :alpha:字母 :ascii:ASCII字符 :blank:空格或制表符 :cntrl:ASCII控制字符 :digit:数字 :graph:非控制、非空格 :lower:小写字母 :print:可打印字符 :punct:标点符号字符 :space:空白字符 :upper:大写字母 :xdigit:十六进制数字 正则表达式 选项选项含义义 ?匹配是可选的,但最多匹配 一次 *必须匹配0或多次 +必须匹配1或多次 n必须匹配n次 n,必须匹配n次或以上 n,m匹配次数在n到m之间,包括 n,mgrep e$ words2.txt grep a:blank: words2.txt grep Th.:space: words2.txt grep E a-z10 words2.txt 命令执行 算术扩展 捕获一条命令执行的结果,可以用: var=command var=$(command) expr命令可以处理一些简单的算术命令,但 它会调用一个新的shell来执行,效率低, 一种更好的办法是$() x=0 while “$x” ne 10 ; do echo $x x=$($x+1) done 参数扩展 S for i in 1 2 ; do process $i_tmp done 常见的替换规则 参数扩扩展说说明 $param:- defalut 如果param为空,设为default值 $#param给出长度 $param%wo rd 从param的尾部开始删除与word匹配的 最小部分 $param% word 从param的尾部开始删除与word匹配的 最长部分 $param#wor d 从param的头部开始删除与word匹配的 最小部分 $param#wo rd 从param的头部开始删除与word匹配的

温馨提示

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

评论

0/150

提交评论