您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Linux软件开发基础_第4章
基于嵌入式技术的——Linux软件开发基础知识回顾Vi基本操作常用命令常用命令光标相关编辑相关常用命令常用命令编辑相关分屏操作环境相关使用VI编辑、修改文本IC-MSP2.0第章4第章SHELL编程IC-MSP2.0本章目标Shell脚本的作用Shell脚本的基本元素Shell脚本的运行方式Shell脚本的运行方式条件测试条件测试控制流结构控制流结构IC-MSP2.0使用shell脚本的原因shell脚本在处理自动循环或大的任务方面可节省大量的时间且功能强大面可节省大量的时间,且功能强大。在嵌式设备中进行系统的初始设在嵌入式设备中,进行系统的初始设置。自动执行指定的脚本,启动应用程序。IC-MSP2.0Shell脚本的基本元素#!XXXXX##命令流程控制函数等函数等IC-MSP2.0Shell脚本的执行方式1.直接运行接行2.使用sh命令执行3使用执行3.使用.执行4.使用source执行IC-MSP2.0条件测试(1)写脚本时,有时要判断字符串是否相等,可能还要检查文件状态或是数值测试可能还要检查文件状态或是数值测试。基于这些测试才能做进步动作命基于这些测试才能做进一步动作。test命令用于测试字符串,文件状态和数字,也很适合于下一部分将提到的if、then、else条件结构。else条件结构。IC-MSP2.0测试文件状态(1)test一般有两种格式,即:testcondition或[condition]使用方括号时要注意在条件两边加上空格使用方括号时,要注意在条件两边加上空格。选项说明为-d是否为目录-f是否为普通文件l是否为符号连接-l是否为符号连接-r是否可读-s文件长度是否大于0(即是否为非空)s文件长度是否大于0(即是否为非空)-w是否可写-u文件是否有suid位设置IC-MSP2.0u文件是否有suid位设置-x是否可执行测试文件状态(2)范例:使用两种方法测试文件scores.txt是否可写并用最后退出状态测试是否成功。注意:0表示成功,其他为失败。如下图所示:IC-MSP2.0测试文件状态(3)上面示例测试scores.txt文件是否可以执行,返回值为1,表示不可执行。IC-MSP2.0测试时使用逻辑运算符(1)-a逻辑与,操作符两边均为真,结果为真,否则为假。-o逻辑或操作符两边一边为真结果为真否则为假-o逻辑或,操作符两边一边为真,结果为真,否则为假。!逻辑非,条件为假,结果为真。IC-MSP2.0测试两个文件是否均可读测试时使用逻辑运算符(2)测试两个文件中是否有一个为可执行IC-MSP2.0字符串测试(1)符串测试有以下5种格式。test“字符串”test操作符“字符串”test“字符串1”操作符“字符串2”[操作符“字符串”][“字符串1”操作符“字符串2”]这里,操作符可为:=两个字符串相等。!=两个字符串不等。-z空串。-n非空串。IC-MSP2.0字符串测试(2)下面为测试$LANG环境变量是否为空的列子,如图所示IC-MSP2.0数值测试(1)下面为测试$LANG环境变量是否为空的列子,如图所示测试数值可以使用许多操作符,一般格式如下:test“操作数1”操作符“操作数2”操作数操作符操作数或者[“操作数1”操作符“操作数2”][操作数操作符操作数]操作符可为:-eq数值相等。q数值相等-ne数值不相等。-gt第一个数大于第二个数。g第个数大于第个数-lt第一个数小于第二个数。-le第一个数小于等于第二个数。IC-MSP2.0第个数小于等于第个数-ge第一个数大于等于第二个数。数值测试(2)在shell中执行以下命令:test12–eq12返回值为0,表示12与12相等[12–eq13]返回值为1,表示12与13不相等如下图所示:IC-MSP2.0expr计算expr命令一般用于整数值,但也可用于字符串。格式为:expr操作数1运算符操作数2expr操作数1运算符操作数2IC-MSP2.0流程控制—退出状态如果要观察其退出状态,使用最后状态命令:如果要观察其退出状态,使用最后状态命令:echo$?要退出当前进程,shell提供命令exit,格式为:exitnexitn其中,n为一数字。其中,n为数字。如果只在命令提示符下键入exit,假定没有在当前状态创建另一个shell,将退出当前shell。状态创建另个shell,将退出当前shell。IC-MSP2.0流程控制—控制结构为何在shell编程时要引入流程控制?为编要流控IC-MSP2.0流程控制—ifthenelse(1)if语句测试条件,测试条件返回真(0)或假(1)后,可相应执行一系列语句。if语句结构对错误检查非常有用。其格式应执行系列语句语句结构对错误检查非常有用其格式为:if条件1命令then命令1elif条件2then命令2then命令2else命令3fiIC-MSP2.0流程控制—ifthenelse(2)z变量值测试z变量值测试通过测试设置为接受用户输入的变量可以测知用户是否输入信息下面的例子中测试用户键入回车键,后变量输入信息。下面的例子中测试用户键入回车键,后变量NAME是否包含任何信息。如下图所示:IC-MSP2.0流程控制—ifthenelse(3)zgrep输出检查if语句不仅可以用于变量或数值测试,也可以测知系统命令是否成功返回。对于grep命令,使用if语句找出grep是否成功返回信息。下面的例子中grep用于查看AaronDu是否在数据文件dttt中注意‘AD\’用于精确匹配数据文件data.txt中,注意‘AaronDu\’用于精确匹配。IC-MSP2.0流程控制—case(1)case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相配的命令个值与个模式,如果匹配成功,执行相配的命令。case语句格式如下:case值incase值in模式1)命令1命令1...;;;;模式2)命令2*任意字符。?任意单字符命令2...;;?任意单字符。[..]类或范围中任意字符。IC-MSP2.0;;esac流程控制—case(2)IC-MSP2.0流程控制—for(1)for循环一般格式为:般为for变量名in列表do命令1命令2⋯doneIC-MSP2.0流程控制—for(2)在循环体中结合使用变量名和字符串,如下图所示:IC-MSP2.0流程控制—for(3)用命令作为循环列表,如下图所示IC-MSP2.0流程控制—for(4)使用ls在for循环中列出文件数目,如下图所示IC-MSP2.0流程控制—until(1)until循环格式为:til条件until条件命令1...doneIC-MSP2.0流程控制—until(2)IC-MSP2.0流程控制—while格式为:格式为:while命令dodo命令1命令2命令2...donedoneIC-MSP2.0流程控制—break、continueIC-MSP2.0总结基本元素与执行方法shell编程测试与计算test与[]分支控制shell编程测试与计算分支控制循环控制expr综合性shell编程训练IC-MSP2.0习题1.简述shell编程中变量的使用。1.简述shell编程中变量的使用。2.用shell写出一个求1~10累加和的程序。3.在Linux系统上,根目录下包含有哪些目录?各自的功能是什么?各自的功能是什么IC-MSP2.0作业写出一个服务管理脚本,实现对httpd、vsftpd、sshd、samba服务的启动、关闭、重启的控制脚本。samba服务的启动、关闭、重启的控制脚本。提示:启动httpd命令为servicehttpdstart关闭httd命令为ihttdt关闭httpd命令为servicehttpdstop重启httpd命令为servicehttpdrestartIC-MSP2.0
本文标题:Linux软件开发基础_第4章
链接地址:https://www.777doc.com/doc-6445875 .html