linux与shell编程第8章-基础_第1页
linux与shell编程第8章-基础_第2页
linux与shell编程第8章-基础_第3页
linux与shell编程第8章-基础_第4页
linux与shell编程第8章-基础_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 Shell编程基础生物信息教研室李永生 讲师转化医学中心603室 2022/8/121内容提纲Shell介绍Shell脚本介绍Shell特性正则表达式变量与运算符Shell的输入与输出2022/8/122复习别名:alias命令替换: 管道: |重定向:与的区别后台处理: nohup+wget的用法模式匹配特殊字符运算符2022/8/123复习:模式匹配: 正则表达式基本元字符集元字符含义只匹配行首$只匹配行尾*匹配0或多个字符 匹配 内字符屏蔽元字符的特殊含义.匹配任意单字符模式n匹配模式出现次数,n模式n,m模式次数,至少为n模式n,m模式出现在n,m之间2022/8/124复习:

2、特殊字符双引号(“):用来使shell无法认出空格、制表符和其他大多数特殊字符,这样“David Medinets”表示一个值。单引号():用来使shell无法认出所有特殊字符。反引号():用来替换命令。反斜杠():用来使shell无法认出以上的特殊字符,使其后的特殊字符失去特殊含义。2022/8/125复习:运算符优先级级别运算符说明级别运算符说明13-,+正,负12!,逻辑非,按位取反或补码11*,/,%乘,除,取模10+,-加,减9按位左移,按位右移8=,7=,!=等于,不等于6&按位与5按位异或4|按位或3&逻辑与2|逻辑或1=,+=,-=,*=,/=,%=,=,=,&=赋值、运算且赋

3、值较高运算级别的运算符优先于低级别的运算符进行求值运算。2022/8/126第四节 shell的输入和输出echoreadcat管道tee文件重定向2022/8/127echo显示文本或变量,或者把字符串输入到文件命令格式echo string-e 表示解析转义字符 -n 回车不换行,linux默认回车换行控制字符:c-不换行;t-跳格;n-换行举例echo -e Whats your name n“read nameecho $LOGNAME2022/8/128echo 举例示例:#!/bin/bash#echodecho -e This echos 3 new linesnnnecho “

4、OK”echoecho This echos 3 new linesnnnecho This logfiles have been done mylogfile.txt2022/8/1292022/8/1210read从键盘或文件的某一行文本中读入信息,并将其赋给一个变量命令格式read 变量1 变量2 举例$read name1 name2tom jerry bob2022/8/1211运行结果2022/8/1212read 举例#!/bin/bash#readnameecho -n First Name:“read firstnameecho -n Last Name:“read last

5、nameecho -e Your First Name is: $firstname n“echo -e Your Last Name is: $lastname n2022/8/1213cat显示文件内容,创建文件,不分屏(一般用在小文件,大文件显示不下);合并文件,仅在屏幕上合并,并不改变原文件命令格式cat options filename1 . filename2 .选项:-v:显示控制字符2022/8/1214举例cat file1 file2 file3同时显示三个文件的内容cat file1 file2 file3 myfile将三个文件的内容重定向到myfile中cat v m

6、yfile.txt显示控制字符cat file | more通过管道传给more 然后间接实现分页显示2022/8/1215管 道( | )一个命令的输出传递给另一个命令作为输入命令格式命令1 | 命令2举例cat myfile | morels l | grep “myfiledf k | awk print $1 | grep v “Filesystem” 查看磁盘空间的命令sort myfile | l pps ef | grep java获取磁盘空间信息拿到磁盘空间信息的第一列过滤掉FileSystem这列的信息2022/8/1216管道2022/8/1217注意: 1、管道命令只处理

7、前一个命令正确输出,不处理错误输出 2、管道命令右边命令,必须能够接收标准输入流命令才行。 tee把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中命令格式 tee -a files一般用于管道之后-a 参数功能是将输出的内容追加到文件之中如果没有则覆盖文件中原有的内容举例who | tee a who.outdf k | awk print $1 | grep v “Filesystem” | tee a partation.txt2022/8/1218文件重定向标准输出、输入及错误 在shell 中执行命令时,每个进程都和三个打开的文件相关联,并使用文件描述符来引用这些文件。由于

8、文件描述符不容易记忆,shell同时也给出了相应的文件名。文件文件描述符输入文件标准输入0(缺省是键盘,也可以是文件或其他命令的输出)输出文件标准输出1(缺省是屏幕,也可以是文件)错误输出文件标准错误2(缺省是屏幕,也可以是文件)2022/8/1219文件重定向对于任何一条linux 命令执行,它会是这样一个过程:2022/8/1220文件重定向linux shell下常用输入输出操作符是:1. 标准输入 (stdin) :代码为 0 ,使用 或 或 ;3. 标准错误输出(stderr):代码为 2 ,使用 2 或 2 ;2022/8/1221输出重定向格式:command-line1 1-n

9、 file或文件操作符或设备意思:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)1,2分别是标准输出,错误输出。2022/8/1222实例#显示当前目录文件 test.sh test1.sh test1.sh实际不存在rootroot shell$ lstest.sh test1.shls: test1.sh: 没有这个文件和目录test.sh2022/8/1223cont#正确输出与错误输出都显示在屏幕了,现在需要把正确输出写入suc.txtrootroot shell$ lstest.sh test1.sh 1

10、suc.txtls: test1.sh: 没有这个文件和目录#查看文件内容rootroot shell$ catsuc.txt test.sh# 1可以省略,不写,默认至标准输出2022/8/1224cont#把错误输出,不输出到屏幕,输出到err.txtrootroot shell$ lstest.sh test1.sh 1suc.txt 2err.txtrootroot shell$ catsuc.txt err.txt test.shls: test1.sh: 没有这个文件和目录思考:1和2能否省略?2022/8/12252022/8/12262022/8/1227cont#继续追加把输

11、出写入suc.txt err.txt “”追加操作符rootroot shell$ lstest.sh test1.sh 1suc.txt 2err.txt 2022/8/12282022/8/1229注意:1、shell遇到”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。不存在直接创建。 无论左边命令执行是否成功。右边文件都会变为空。2、“”操作符,判断右边文件,如果不存在,先创建。以添加方式打开文件,会分配一个文件描述符不特别指定,默认为1,2然后,与左边的标准输出(1)或错误输出(2) 绑定。3、当命令:执行完,绑定文件的描述符也自动失效。0,1,2又会空闲。4、一条

12、命令启动,命令的输入,正确输出,错误输出,默认分别绑定0,1,2文件描述符。5、一条命令在执行前,先会检查输出是否正确,如果输出设备错误,将不会进行命令执行2022/8/1230输入重定向格式:command-line n catfile testing catfiletest#这里按下 ctrl+d 离开 #从标准输入【键盘】获得数据,然后输出给catfile文件2022/8/1232controotroot shell$ catcatfile eoftesta filetest!eof#catfile test.sh#cat 从test.sh 获得输入数据,然后输出给文件catfile2022/8/1234结果演示2022/8/1235exec绑定重定向在上面讲的输入,输出重定向将输入,输出绑定文件或设备后。只对当前那条指令是有效的。如果需要在绑定之后,接下来的所有命令都支持的话。就需要用exec命令格式:exec 文件描述符n file

温馨提示

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

评论

0/150

提交评论