第12章 shell编程基础 本章主要介绍shell编程的基础知识。shell脚本的执行类似于Linux下的任何其他命令,脚本可以包含复杂的逻辑,也可以包含一系列Linux命令行指令。在一个shell程序内可以运行其他shell脚本。通过本章的学习,读者可以学到如何使用bash(最流行的Linux.

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

1.1 程序和程序设计 程 序:简单的说程序就是指令的集合。 计算机设计语言: 机器语言 :二进制 0 、 1 汇编语言:助记符(英语单词)。 高级语言: 人类自然语言(数学语言 + 英语) 如: C 语言、 Qbasic 、 VB 等 第一章:程序设计基本概念.
開南大學 資訊管理學系 學分學程相關說明.
電腦硬體裝修丙級 ----安裝微軟windows作業系統----
关于市场营销的分析 ——以九阳豆浆机为例 品牌经营——让每一个家庭都拥有一台九阳豆浆机 营销管理——采取文化、概念、网络等营销组合
我征服了黃山 林達的黃山之旅 2006春.
國中基本能力測驗 (基測) 報告人:魏麗琴老師.
和码汉字字形技术 和码汉字字形学习法 和码汉字字形输入法.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
99年成語200題庫(21-40).
面部心理学 微表情.
战争结束了 年11月,听到停战的消息,巴黎街头人们欣喜若狂。法国总理克里孟梭说:“吻我的姑娘有500多个了。”
香港普通話研習社科技創意小學 周順強老師.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
授课教师简历 刘付才,男,中学高级教师,亳州一中南校体 育教研组长,全国体育优质课一等奖获得者,华佗 五禽戏第五十八代传承人;长期从事五禽戏教学和 研究工作,参与创编了国家级课题“校园五禽戏”; 2014年全国学生运动会展示中获得优秀表演奖; 2015年指导的五禽戏传人进行的五禽戏教学获得全 国一等奖,编著的《华佗五禽戏之简易健身操》即.
洪涝灾害重点传染病的预防 江苏省疾病预防控制中心 汪华.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
第五课 小设计师.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
小 桔 灯 市场赢利能力与战略 主讲:杨贤耀.
第 5 章 流程控制 (一): 條件分支.
Linux操作系统分析 课程安排 孟宁 电话:
践行新时期广东精神 推进广东公路文化繁荣与发展 ——关于广东省公路文化建设与实践的思考
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
程式設計實作.
第三讲 shell 程序设计.
第 19 章 檔案系統與 權限設定.
第5章 程序结构.
C++Primer 3rd edition 中文版 Chap 5
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
Shell Script 程式設計.
Shell程序设计 曙光信息产业股份有限公司.
第一次随堂作业(10.16) 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪.
第3章 Linux系统的基本操作 3.1 X Window图形化用户界面 3.2 GNOME的桌面环境 3.3 窗口和菜单操作
第二天 计算机基础技能培训 (一)linux基础知识
MIS原理与应用 第七讲 系统需求分析之 逻辑模型
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
PHP 程式流程控制結構.
第9章 维护Linux网络 Linux的强大功能体现在网络上,网络用户无论是将Linux作为客户机还是服务器来使用都需要对其网络进行管理和维护,在管理和维护网络时,尤其在网络通信时更侧重于对信息安全性的考虑。 本章从网络的基础知识出发,详细介绍Linux下防火墙的功能与作用、路由器的原理以及SSH协议和相关的软件。通过本章的学习,使读者熟悉Linux下网络的相关知识,具备掌握管理和维护Linux网络的基本技能。
第1章 VI 标识 在Flash CS3中,创作任何动画都应该从基本图形的绘制开始。只需要在绘图工具箱中单击相应的工具,然后将光标移动到画板中单击并拖动,则可绘制出基本的形状。 通过本章,你应该掌握: Flash绘制模式 工具箱中的各种工具的使用方法 “混色器”面板、“变形”面板的使用.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
編譯程式設計 期末專題說明 V1.1 May 2004.
第六章 shell 程序调试 一. 程序执行状态跟踪 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是
Case 工具-UML with Rational Rose
第六章 迴圈與陣列.
Live CD— 免安裝!立即體驗 Fedora
杨振伟 清华大学 第一讲:Linux环境下编程(1)
第5章 软件详细设计 本章内容结构 本章引言 学习目标 教学内容 本章小结 思考和练习 课堂讨论 2019年4月26日.
福音賀卡.
第3章 JavaScript基本语句.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
第二章 Java基本语法 讲师:复凡.
架构师成长感悟 吴隆烽
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Fedora 8 圖形模式光碟安裝.
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
杨振伟 清华大学 第一讲:Linux环境下编程(1)
第6章 PHP基本語法介紹.
C#快速導讀 流程控制.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Presentation transcript:

第12章 shell编程基础 本章主要介绍shell编程的基础知识。shell脚本的执行类似于Linux下的任何其他命令,脚本可以包含复杂的逻辑,也可以包含一系列Linux命令行指令。在一个shell程序内可以运行其他shell脚本。通过本章的学习,读者可以学到如何使用bash(最流行的Linux shell之一)编写和执行简单的shell程序,还可以获得shell语法结构的概貌。

本章学习要点: 了解shell的基本概念 了解shell的功能 理解shell编程的意义 创建和执行shell脚本程序

12.1 shell概述 Shell是使用Linux系统的基本环境。虽然不使用Shell,通过X Window也能操作Linux,但是,无论如何看待文本环境下的工作,都可以肯定地说,一旦全面体验到纯文本的强大功能,就会被它所折服。文本就是简洁,文本就是速度。管理网络的系统管理员在使用Shell方面是最有经验的。那些被迫在慢速调制解调器连接上使用图形工具的用户很快也会被折服。

12.2 shell使用基础 要使用shell,就应当知道如何进入和退出shell;只有了解了shell编程的意义,才可以根据需要编写自己的shell脚本;另外,了解shell命令行的基本功能有益于编写shell脚本。本节将对这些内容进行介绍。

12.2.1 进入和退出shell 要使用shell,最先需要知道的就是如何进入和退出shell。下面首先介绍进入shell的方法 。 1.终端方式 2.通过虚拟控制台

12.2.2 shell命令行 理解shell命令行的基本功能有助于编写出更好的shell脚本。使用shell命令行可以完成多种不同的工作, shell的内部作业控制命令可以将命令行作为后台进程启动,挂起一个运行程序,有选择地重新激活挂起程序或者杀死运行程序,以及完成其他进程控制功能 。

12.2.3 shell编程的意义 从命令行输入命令时,每输入一次命令,就可获得系统的一次响应。当需要经常一个接一个地连续执行命令,才能得到最后的结果时,这种操作方法就显得效率很低,在这种情况下,可以利用shell程序或者shell脚本实现这一目的。尽管可以使用命令历史功能,但是shell脚本能增加使用命令行参数替换和内部帮助的灵活性。

12.3 shell的基本语法 在正式进行shell编程之前,还需要先了解shell的基本语法,包括怎样在shell脚本中定义和使用变量,如何使用变量表达式,以及了解shell中的某些特殊字符在shell编程中的作用等。

12.3.1 shell中的变量 1.shell定义的环境变量 shell也提供了说明和使用变量的功能。在shell程序中,所有变量的取值都是一个字符串,shell程序采用$var的形式来引用名为var的变量的值。 1.shell定义的环境变量 2.用户变量 3.内部变量 4.位置参数

12.3.2 变量表达式 变量表达式是编程期间使用非常频繁的编程元素之一。对变量表达式进行判断或者比较是在shell程序中使用逻辑完成任务的主要部分。在不同的shell中,两个逻辑比较操作符(数值和串)执行的方式稍有不同。在bash中,命令test可以用来完成表达式比较。

12.3.3 shell中的字符 shell中的字符是shell脚本的重要组成部分,其中的某些字符具有特定的含义和重要作用。 1.使用双引号 2.使用单引号 3.使用反斜线 4.使用反撇号

12.4 创建和执行shell程序 接下来将详细介绍如何创建和执行第一个shell脚本。首先从比较简单的实例开始,然后,随着经验和知识的积累,再对脚本进行扩充。像编写其他计算机语言程序一样,也应养成尽量多使用注释(以#开头的行)为脚本的每一部分写文档的好习惯。可以使用某一文本编辑器编写shell脚本,例如vi、gedit等;另外,如果使用可自动换行的文本编辑器可能会破坏脚本语法并产生问题,例如使用nano编辑器,这时,应使用-w标志禁止换行。

12.4.1 创建shell程序 在此要写的是一个能针对特定用户显示友好问候语的shell程序。 假定是以用户名root登录Fedora的,在root目录下有一个名为mydir的子目录。首先,在目录mydir中用文本编辑器(例如gedit或者vi)创建一个名为greeting的文本文件 。

12.4.2 执行shell程序 编辑完greeting文件后,还不能立即执行,要执行该文件中的shell脚本,首先应当使用chmod命令打开该文件的可执行权限,然后,就可以像运行其他Linux命令那样执行它了。如图12-16所示。

12.5 循环语句 使用控制结构语句可以使一些复杂的操作变得简单明了。例如,当需要重复同样的操作时,使用重复语句可以使程序大大简化,并且使程序易懂、条理清楚。同其他的编程语言一样,shell常见的循环语句有for循环、while循环和until循环等。

12.5.1 for语句 Shell中的for循环语句与一般编程语言里的for语句有些不同,在shell中,for的作用是对一组参数都执行一个操作。

12.5.2 while语句 while语句是shell提供的另一种循环语句,它在指定条件为真时用于执行一组语句,条件一旦为假,循环就马上终止;如果指定条件开始就为假,循环将不会执行。

12.5.3 until语句 until语句可以用来执行一系列语句直到指定条件为真。until语句的作用是重复do和done之间的操作直到表达式成立。

12.5.4 shift语句 shift语句用于处理位置参数,一次一个从左到右地处理。如前所述,位置参数用$1、$2、$3等依次表示。shift命令的作用是使每个位置参数向左移动一个位置,当前的$1参数丢弃。

12.6 条件语句 条件语句的执行方式与循环语句的执行方式不同。条件语句是一种分支语句,只有当语句满足规定的条件时,才可以执行规定的操作;如果不满足,则不执行或者跳过某些操作。本节将介绍shell中的条件语句。

12.6.1 if语句 if语句可以嵌套。也即,一个if条件中可以包含另一个if条件。if语句可以没有elif和else部分。如果if语句中的expression为假,而且后续可选的elif语句中expression也为假,则执行else部分。关键字fi表示if语句的结束。

12.6.2 case语句 case的作用是当字符串与某个值相同时就执行那个值后面的操作。如果对于同一个操作有多个值,就可以用分隔符“|”将各个值分开。在为每个条件所指定的值中也可以带通配符。case语句的最后一个条件必须是*(星号),如果其他条件都不满足将会执行它。对于每个指定的条件,其关联的语句直到双分号为止。

12.7 其他语句 除了上述几种语句之外,shell还提供了几种辅助性的语句。这些语句不能单独使用,必须与固定的语句结合起来才能发挥作用。例如,在循环语句中使用break跳出循环嵌套等。

12.8 使用函数 与使用其他编程语言类似,shell程序也支持函数。shell允许将一组命令集或者一行语句形式一个可用块,这些块被称为shell函数。函数是完成特定处理功能的一个shell程序;在shell程序内部可以重复使用同一函数多次。在编写shell程序时,使用函数有助于消除重复代码和组织整个程序。