- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux 系统工程师 —— Linux 系统管理
第七章 Shell 编程基础
其实作为命令语言互动式地解释和执行用户输入的命令只是 Shell 功能的一个
方面,Shell 还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的
程序控制结构。Linux 系统中的很多配置和控制都是通过 Shell 脚本来进行的,包括
系统的启动,服务的启动,用户环境的配置等。要学习好 Linux ,shell 编程是必备
知识之一。
本章目标:
学习完本章你将能够
理解 Shell 脚本的执行
编写 shell 脚本
83 Version :1.0
Linux 系统工程师 —— Linux 系统管理
1. shell 脚本的执行
用户可以用任何编辑器来编写 Shell 程序。因为 Shell 程序是解释执行的,所以
不需要编译成目的程序。按照 Shell 编程的惯例,以 bash 为例,程序的第一行一般
为“# !/bin/bash” ,其中 # 表示该行是注释,叹号 “ !” 告诉 Shell 运行叹号之后的
命令并用文档的其余部分作为输入,也就是运行/bin/bash 并让/bin/bash 去执行 Shell
程序的内容。
1.1 shell 程序的执行
执行 Shell 程序的方法有 3 种。
(1)sh Shell 程序文件名,这种方法的命令格式为:
bash Shell 程序文件名
这实际上是调用一个新的 bash 命令解释程序,而把 Shell 程序文件名作为参数
传递给它。新启动的 Shell 将去读指定的文件,可执行文件中列出的命令,当所有的
命令都执行完后结束。该方法的优点是可以利用 Shell 调试功能。
(2 )sh ,格式为:
bash Shell 程序名
这种方式就是利用输入重定向,使 Shell 命令解释程序的输入取自指定的程序文
件。
(3 )用 chmod 命令使 Shell 程序成为可执行的
一个文件能否运行取决于该文档的内容本身可执行且该文件具有执行权。对于
Shell 程序,当用编辑器生成一个文件时,系统赋予的许可权都是 644(rw-r-r--) ,因
此,当用户需要运行这个文件时,只需要直接键入文件名即可。
在这 3 种运行 Shell 程序的方法中,最好按下面的方式选择:当刚创建一个 Shell
程序,对它的正确性还没有把握时,应当使用第一种方式进行调试。当一个 Shell
程序已经调试好时,应使用第三种方式把它固定下来,以后只要键入相应的文件名
即可,并可被另一个程序所调用。
84 Version :1.0
Linux 系统工程师 —— Linux 系统管理
1.2 bash 程序的调试
在编程过程中难免会出错,有的时候,调试程序比编写程序花费的时间还要多,
Shell 程序同样如此。
Shell 程序的调试主要是利用 bash 命令解释程序的选择项。调用 bash 的形式是:
bash -选择项 Shell 程序文件名
几个常用的选择项是:
-e 如果一个命令失败就立即退出。
-n 读入命令但是不执行它们。
-u 置换时把未设置的变量看做出错。
-v 当读入 Shell 输入行时把它们显示出来。
-x 执行命令时把命令和它们的参数显示出来。
上面的所有选项也可以在 Shell 程序内部用“set -选择项” 的形式引用,而“set +
选择项”则将禁止该选择项起作用。如果只想对程序的某一部分使用某些选择项时,
则可以将该部分用上面两个语句包围起来。
(1)
原创力文档


文档评论(0)