《Linux第7讲》PPT课件.ppt_第1页
《Linux第7讲》PPT课件.ppt_第2页
《Linux第7讲》PPT课件.ppt_第3页
《Linux第7讲》PPT课件.ppt_第4页
《Linux第7讲》PPT课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

Linux系统应用与程序设计,主讲:邝颖杰电邮:kuangyingjie,主要内容,Shell的作用Shell程序的编辑和运行基于Bash的Shell程序设计变量声明表达式条件判断控制结构参数访问,3,Shell的作用,shell是用户和系统内核之间的接口程序shell是命令解释器在本章中,shell指linux的终端即解释用户命令和shell程序的文字终端,用户,4,linux下的shell,用户使用shell的设定通过查看/etc/passwd文件可以查看用户使用的shell类型例子:/etc/passwd部分节选,webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologinxfs:x:43:43:XFontServer:/etc/X11/fs:/sbin/nologinntp:x:38:38:/etc/ntp:/sbin/nologingdm:x:42:42:/var/gdm:/sbin/nologinhtt:x:100:101:IIIMFHtt:/usr/lib/im:/sbin/nologintom:x:500:500:tom:/home/tom:/bin/bash#可见,tom用户使用的shell为bash,5,linux下的shell,linux下的shell通过cat/ect/shells命令查看安装的shell,6,shell程序,Shell程序的特点及用途:shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行不同的shell解释器使用不同的shell命令语法shell程序解释执行,不生成可以执行的二进制文件可以帮助用户完成特定的任务,提高使用、维护系统的效率了解shell程序可以更好的配置和使用linux,Shell使用解释型语言,不需重新编译它适合于编写执行相对简单的任务的工具,因为它更强调易于配置、维护和可移植性它不适合用来完成时间紧迫型和处理器忙碌型的任务,8,基于bash的shell程序,简单程序示例,如何执行,可以使用/bin/shfilename或给该文件属性添加执行权限,然后直接执行,基于bash的shell程序,程序编译和运行过程一般步骤:编辑文件保存文件将文件赋予可以执行的权限运行及排错常用到的命令:vi,编辑、保存文件ls-l查看文件权限chmod改变程序执行权限直接键入文件名运行文件,shell程序的编辑和执行,shell程序设计,一般结构shell类型函数主过程,#!/bin/bashfunctionfun1().funcitonfunn().,函数定义,shell类型,主过程,变量的声明和使用,变量的声明和使用变量是弱类型的声明变量不用声明类型可以存储不同类型的内容使用灵活使用时要明确变量的类型大小写区分变量声明及赋值格式格式:变量值(注意:等号两侧不能有空格)例如:a=”hello”b=9,变量的声明和使用,变量的引用格式:$变量名,或者$变量名变量名为一个字符用方式一,变量名多于一个字符建议用第2中方式例子:a=1abc=helloecho$aecho$abc,Linux是一个大小写敏感的系统,shell认为变量foo与Foo是不同的,与FOO也不同当为变量赋值时,只需要使用变量名,该变量会被自动创建要使用变量,必须在变量前加$符号,演示,salutation=helloecho$salutationhellosalutation=“yesdear”echo$salutationyesdearsalutation=7+5echo$salutation7+5,注意:如果字符串里包含空格,就必须用引号把它们括起来还要注意在等号两边不能有空格$a和$a,使用read将用户的输入赋值给变量,readsalutationImjack.echo$salutationImjack,使用引号,如果在参数中包含一个或多个空白字符,必须给参数加双引号如果把一个带有$字符的变量放在双引号中,程序执行到该行时会把变量替换为它的值如果你把它放在单引号中,不会发生替换现象可用字符取消$的特殊含义字符串通常被放在双引号中,单引号、倒引号,由单引号括起来的字符都作为普通字符出现倒引号括起来的字符串被shell解释为命令行,在执行时shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分,演示,#!/bin/shmyvar=“Hithere”echo$myvarecho“$myvar”echo$myvarecho$myvarechoEntersometextreadmyvarecho$myvarnowequals$myvarexit0,环境变量,$HOME当前用户的主目录$PATH以冒号分隔的用来搜索命令的目录列表$PS1命令提示符,通常是$字符$PS2二级提示符$IFS输入域分隔符,当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符$0shell脚本的名字$#传递给脚本的参数个数$shell脚本的进程号,提示符特殊字符代码字符含义!显示该命令的历史记录编号。#显示当前命令的命令编号。$显示$符作为提示符,如果用户是root的话,则显示#号。显示反斜杠。d显示当前日期。h显示主机名。n打印新行。nnn显示nnn的八进制值。s显示当前运行的shell的名字。t显示当前时间。u显示当前用户的用户名。W显示当前工作目录的名字。w显示当前工作目录的路径。,参数变量,$1$2$3.脚本程序的参数$*在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开$它是$*的一种变体,它不使用IFS环境变量,所以当IFS为空时,参数的值不会结合在一起,演示,$IFS=$setfoobarbam$echo“$”foobarbam$echo“$*”foobarbam$unsetIFS$echo“$*”foobarbam,演示,#!bin/shsa=Helloecho$saechotheprogram$0isnowrunningechothesecondparameterwas$2echothefirstparameterwas$1echotheparameterlistwas$*echotheusershomedirectoryis$HOMEechopleaseenteranewwordreassaecho$saechothescriptisnowcompleteexit0,常用的运算符,整数的算术运算符+、*、/、%;赋值运算符、*、/、位运算符、&、|、;位运算赋值运算符、&、|、;逻辑运算符:&,|,!,!,,简单数学表达式,expr命令计算一个表达式的值格式:exprarg例子:计算(23)4的值1、分步计算,即先计算23,再对其和乘4s=expr2+3expr$s*42、一步完成计算:exprexpr2+3*4说明:运算符号和参数之间要有空格分开;通配符号(*),在作为乘法运算符时要用、“”、符号修饰,简单数学表达式,let命令格式:letarg1arg2.例子:计算(23)4的值lets=(2+3)*4说明:与expr命令相比,let命令更简洁直观当运算符中有、&、|等符号时,同样需要用引号(单引号、双引号)或者斜杠来修饰运算符,条件判断,常见的条件:变量属性;文件属性;命令执行结果;多种条件的逻辑组合;判断结果的一般定义:真:0假:1格式:testconditioncondition,条件判断,测试文件属性,条件判断,字符串属性,整数关系,整数间关系判断,控制结构,控制结构:根据某个条件的判断结果,改变程序执行的路径。可以简单的将控制结构分为分支和循环两种。常见分支结构:ifcase常见循环结构:forwhileuntil,if分支,格式:,说明:中括号中的部分可省略;当条件为真(0)时执行then后面的语句,否则执行else后面的语句;以fi作为if结构的结束。,if条件1then命令elif条件2then命令else命令fi,case分支,格式:,说明:“条件”可以是变量、表达式、shell命令等;“模式”为条件的值,并且一个“模式”可以匹配多种值,不同值之间用竖线(|)联结;一个模式要用双分号(;)作为结束;以逆序的case命令(esac)表示case分支语句的结束,case条件in模式1)命令1;模式2)命令2;.模式n)命令n;esac,for循环,格式,说明:“列表”为存储了一系列值的列表,随着循环的进行,变量从列表中的第一个值依次取到最后一个值;do和done之间的命令通常为根据变量进行处理的一系列命令,这些命令每次循环都执行一次;如果中括号中的部分省略掉,Bash则认为是“in$”,即执行该程序时通过命令行传给程序的所有参数的列表。,for变量in列表do命令(通常用到循环变量)done,while循环与until循环,格式:,说明:while循环中,只要条件为真,就执行do和done之间的循环命令;until循环中,只要条件不为真,就执行do和done之间的循环命令,或者说,在until循环中,一直执行do和done之间的循环命令,直到条件为真;避免生成死循

温馨提示

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

评论

0/150

提交评论