
第16讲 第7章Shel1脚本设计 7.1She11脚本简介 以及编写简单脚本
第16讲 第7章 Shell脚本设计 7.1 Shell脚本简介 以及编写简单脚本

引言 什么是Shel1脚本? 什么时候需要Shel1脚本? 如何编写一个简单的Shel1脚本? 第16讲编写简单脚本第2页共14页
第16讲 编写简单脚本 第2页 共14页 引 言 ❖什么是Shell脚本? ❖什么时候需要Shell脚本? ❖如何编写一个简单的Shell脚本?

【问题1的提出】 ·Geecy软件开发公司的开发人员Tom在调试程 序的过程中遇到了一个令人烦恼的问题:在 运行一个用C语言编写的应用程序的时候,该 程序需要读取一个包含当前时间值的文本文 件,该文件的格式必须为:第1行是“月-日 年”,第2行是“时:分”。 第16讲编写简单脚本第3页共14页
第16讲 编写简单脚本 第3页 共14页 【问题1的提出】 ❖ Geecy软件开发公司的开发人员Tom在调试程 序的过程中遇到了一个令人烦恼的问题:在 运行一个用C语言编写的应用程序的时候,该 程序需要读取一个包含当前时间值的文本文 件,该文件的格式必须为:第1行是“月-日- 年” ,第2行是“时:分”

【问题1的提出】(续) date命令的默认显示格式是: “星期月日时:分:秒时区年” ÷因此,Tom每次运行程序前,都要手工修改该 数据文件,即先运行date命令,再修改数据 文件,最后运行该应用程序。而且从运行 date命令到运行该应用程序最长时间不应该 超过1分钟,否则就要重新修改数据文件。 一第16讲编写简单脚本第4页共14页
第16讲 编写简单脚本 第4页 共14页 【问题1的提出】(续) ❖ date命令的默认显示格式是: “星期 月 日 时:分:秒 时区 年” ❖ 因此,Tom每次运行程序前,都要手工修改该 数据文件,即先运行date命令,再修改数据 文件,最后运行该应用程序。而且从运行 date命令到运行该应用程序最长时间不应该 超过1分钟,否则就要重新修改数据文件

【问题1分析】 。有两种传统的方法可以完成对该数据文件的修改: (1)使用文本编辑器 即先运行date命令,记录下当前时间,然后用vi打开该 数据文件,再修改数据文件并保存退出,最后立即运行该C 写的应用程序。 如果从运行date命令到运行该应用程序最长时间超过1 分钟,则影响该程序的调试,导致整个过程必须重做。 第16讲编写简单脚本第5页共14页
第16讲 编写简单脚本 第5页 共14页 【问题1分析】 ❖ 有两种传统的方法可以完成对该数据文件的修改: (1)使用文本编辑器 即先运行date命令,记录下当前时间,然后用vi打开该 数据文件,再修改数据文件并保存退出,最后立即运行该C 写的应用程序。 如果从运行date命令到运行该应用程序最长时间超过1 分钟,则影响该程序的调试,导致整个过程必须重做

【问题1分析】 。有两种传统的方法可以完成对该数据文件的修改: (1)使用文本编辑器 (2)使用组合命令 使用管道和重定向的组合命令,效率大为提高,但是仍然需要输入 两个很长的命令,操作上依然不太方便。 date cut-f2,3,6-d""tr"""-">data.txt date|cut-f4-d””|cut-f1,2-d":”>data.txt 第16讲编写简单脚本第6页共14页
第16讲 编写简单脚本 第6页 共14页 【问题1分析】 ❖ 有两种传统的方法可以完成对该数据文件的修改: (1)使用文本编辑器 (2)使用组合命令 使用管道和重定向的组合命令,效率大为提高,但是仍然需要输入 两个很长的命令,操作上依然不太方便。 date | cut -f2,3,6 -d “ " | tr " " "-" > data.txt date | cut -f4 -d " " | cut -f1,2 -d " : " >> data.txt

【问题1分析】(续) 。这两种方法都存在一些缺点,不够理想。 事实上,可以采用编写Shel1脚本的方 式完成此任务。 第16讲编写简单脚本第7页共14页
第16讲 编写简单脚本 第7页 共14页 【问题1分析】(续) ❖这两种方法都存在一些缺点,不够理想。 ❖事实上,可以采用编写Shell脚本的方 式完成此任务

、一7.1.1认识SheI脚本 。用户可以把若王个命令保存到一个文本文件,然后使用该文 件的名字一次执行所有的命令。 ·这些命令将逐行执行。 ·这样的文本文件称为Shell脚本(Shell Script)。简称脚本。 ·脚本是一组命令的集合。凡是能够在shell提示符下直接执行 的命令,都可以在脚本中使用。 ÷脚本中还可以使用一些不能在shell提示符下直接热行的语句, 这些语句只有在脚本中使用才有效。 一一第16讲编写简单脚本第8页共14页
第16讲 编写简单脚本 第8页 共14页 7.1.1 认识Shell脚本 ❖ 用户可以把若干个命令保存到一个文本文件,然后使用该文 件的名字一次执行所有的命令。 ❖ 这些命令将逐行执行。 ❖ 这样的文本文件称为Shell脚本(Shell Script)。简称脚本。 ❖ 脚本是一组命令的集合。凡是能够在shell提示符下直接执行 的命令,都可以在脚本中使用。 ❖ 脚本中还可以使用一些不能在shell提示符下直接执行的语句, 这些语句只有在脚本中使用才有效

7.1.2编写简单脚本 使用vi编辑一个新文件fist_script: vi first_script 。输入以下两行内容: 1s-F/ date 。保存文件并退出vi。 第16讲编写简单脚本第9页共14页
第16讲 编写简单脚本 第9页 共14页 7.1.2 编写简单脚本 ❖ 使用vi编辑一个新文件fist_script: vi first_script ❖ 输入以下两行内容: ls -F / date ❖ 保存文件并退出vi

7.1.3运行脚本 。在命令提示符下使用某个Shell执行该脚本。例如: bash first script 。这种方法指定了一个特定的shell版本,此处是bash,来执行该脚本文件; ·指定的shell将首先读入脚本文件first_script,然后逐行热行脚本中的命 令,并依次输出结果。 。当脚本文件中的命令依次执行完毕,该临时的子shell也自动结束运行,返 回到用户原来使用的shel1状态下。 第16讲编写简单脚本第I0页共14页
第16讲 编写简单脚本 第10页 共14页 7.1.3 运行脚本 ❖ 在命令提示符下使用某个Shell执行该脚本。例如: bash first_script ❖ 这种方法指定了一个特定的shell版本,此处是bash,来执行该脚本文件; ❖ 指定的shell将首先读入脚本文件first_script,然后逐行执行脚本中的命 令,并依次输出结果。 ❖ 当脚本文件中的命令依次执行完毕,该临时的子shell也自动结束运行,返 回到用户原来使用的shell状态下