Linux基础教程(清华课件)-第9章 shell编程new.ppt

Linux基础教程(清华课件)-第9章 shell编程new.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux基础教程(清华课件)-第9章 shell编程new.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3. 详细跟踪与跟踪执行的组合 整个程序的跟踪执行格式为, sh -vx 文件名 局部程序的跟踪执行格式为, set -vx——设置跟踪标志 set +vx——关闭跟踪标志 详细跟踪与跟踪执行的区别在于在执行命令行之前,详细跟踪打印出命令行的原始内容,而跟踪执行却打印出经过替换后的命令行内容,循环结构和管道线在两种跟踪方式中是根本不同的。由于shell对这些结构只读取一次,因此,详细跟踪方式也仅显示它们一次。但这类结构的命令行可能要被重复执行多次,所以,跟踪执行方式就可能将同样的命令行显示一次以上。 4. 非执行跟踪 shell的非执行任选项提供的功能允许用户观察一个shell程序,而程序中的命令行不被执行。非执行通常与详细跟踪结合使用,查看在不实际执行一个shell程序时,程序是如何被“执行”的。其格式为, sh -n 文件名 或 set -n 5. 未置变量退出跟踪 shell的未置变量退出特性允许对所有的变量进行检查,如果引用了一个未赋值的变量就终止shell程序执行。shell通常允许未置变量的使用,在此种情况下,变量的值为空。但如果设置了未置变量退出的任选项,则一旦使用了未置的变量就显示出错信息,并终止程序的运行。其格式为, sh -u 文件名 或 set -u——设置标志 set +u——清除标志 6. 立即退出跟踪 shell的立即退出特性允许在程序内的任何命令以非零状态退出时,立即终止程序的运行。其格式为, sh -e 文件名 或 set -e——设置标志 set +e——清除标志 9.7.5 shell程序的应用 1. shell程序的定义 若一个文件包含了一串简单命令串时,称为命令文件;若一个文件包含了一组更为复杂的命令组合 常常使用了shell的条件命令、控制结构和其他高级特性 时,就称之为shell程序 或称shell过程 。通常情况下,两者的称呼并没有明确的区别。 在shell程序设计语言里的基本操作是Linux系统命令,它是Linux系统中最有生气的部分,而且对于Linux系统的使用极为重要。 2. 何时使用shell程序设计语言 当一个问题的解决方法需要使用多个Linux系统的标准命令时,可使用shell命令文件。如果处理的问题比较复杂,可以使用shell程序设计语言,即在命令文件中定义各种参数和变量,使用shell的条件命令、控制结构和其他高级特性。 9.8 shell应用实例 下面这段程序取自/etc/rc.d/rc.sysinit文件中的一部分,/etc/rc.d/rc.sysinit文件是Linux系统启动过程中需要执行的shell程序。这段程序的功能主要是配置网络环境、检查文件系统和加载应用模块。要注意,在shell程序中注释语句是以#开头,但以#!开头的语句并不是注释语句。如果想执行该程序,可以用一般用户登录系统后,直接执行/etc/rc.d/rc.sysinit。 # 第一条语句先指定本shell程序采用哪个shell执行。 #! /bin/sh # 以#开始的语句是注释行。 # /etc/rc.d/rc.sysinit - run once at boot time # # Taken in part from Miquel van Smoorenburg′s bcheckrc. # # 下面语句是定义变量PATH,并把PATH变量声明为全局变量。 # Set the path PATH /bin:/sbin:/usr/bin:/usr/sbin export PATH # 下面命令读取配置数据,这里用到一个简单的IF语句。 # 判断/etc/sysconfig/network文件存在否,如果该文件存在,就执行它。 # 否则,给NETWORKING变量赋值,给HOSTNAME变量赋值。 # Read in config data. if [-f /etc/sysconfig/network]; then . /etc/sysconfig/network else NETWORKING no HOSTNAME localhost fi # 下面语句的功能是启用交换,执行shell命令swapon。 # Start up swapping. echo ″Activating swap partitions″ s

文档评论(0)

dreamzhangning + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档