第5章 Linux shell程序设计_第1页
第5章 Linux shell程序设计_第2页
第5章 Linux shell程序设计_第3页
第5章 Linux shell程序设计_第4页
第5章 Linux shell程序设计_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章Linuxshell程序设计shell是UNIX/Linux系统中一个重要的层次它是用户与系统交互作用的界面。主要内容1shell概述2shell特殊字符3shell变量4算术运算5shell脚本控制结构1shell概述shell的特点shell的种类shell脚本的建立和执行Shell简介Shell用户和操作系统之间的接口作为核外程序而存在文件子系统用户硬件控制硬件内核Shell用户用户用户高级语言和实用程序系统调用进程管理子系统进程间通信存储管理调度程序设备驱动程序字符设备块设备高速缓存核外程序Shell:用户和操作系统之间的接口Shell:用户和操作系统之间的接口

csh其它程序

bashX窗口系统Shell:作为核外程序而存在内核shell的特点命令解释程序一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if、case、while、for等语句,支持函数模块,有自己的语法结构shell的特点 ☆组合新命令 ☆提供了文件名扩展字符 ☆直接使用shell的内置命令☆灵活地使用数据流☆结构化的程序模块☆在后台执行命令☆可配置的环境☆高级的命令语言Shell的工作步骤打印提示符得到命令行解析命令查找文件准备参数执行命令shell的种类Bourneshell(简称sh)由Bell实验室的StevenBourne为UNIX开发是UNIX的默认shell是其他shell的开发基础Cshell(csh)加州伯克利大学的BillJoy为BSDUNIX开发的提供了命令补全、命令别名等Cshell与Bourneshell并不兼容shell的种类Kornshell(ksh)Bell实验室的DavidKorn开发的集合了Cshell和Bourneshell的优点与sh完全兼容BourneAgainshell(bash)自由软件基金会(GNU)开发的shellLinux系统中默认的shell继承了上述版本的优点与sh完全兼容各种不同的Shellshell名称描述位置ash一个小的shell/bin/ashash.static一个不依靠软件库的ash版本/bin/ash.staticbshash的一个符号链接/bin/bshbash“BourneAgainShell”。Linux中的主角,来自GNU项目/bin/bashshbash的一个符号链接/bin/shcshCshell,tcsh的一个符号链接/bin/cshtcsh和csh兼容的shell/bin/tcshkshKornShell/bin/ksh查看系统使用的shell:echo$SHELL查看shell的位置:cd/bin注意/usr/bin和/bin的区别shell脚本的建立和执行shell脚本的建立shell脚本是一个文件,其中包含将由shell执行的一系列命令。当运行一个shell脚本时,脚本文件中的每一条命令被传送给shell执行。方法:利用编辑器(如vi)shell脚本的建立和执行【例1】由几条简单命令组成的shell程序文件名为:e1文件内容为:datepwd执行指令为:./e1可先设置执行权限chmoda+xe1shell脚本的建立和执行执行shell脚本的方法输入定向到shell脚本格式$bash<脚本名以脚本名作为bash参数格式$bash脚本名[参数]shell脚本的建立和执行练习1:建立一个脚本文件ex1,内容为打印当前日期、显示当前目录;建立一个shell脚本文件ex2,内容为在屏幕上显示输出“hello,shell!”,然后再显示e1的文件内容。建立shell脚本文件后,执行上述文件。shell脚本的建立和执行【例2】显示当前的日期时间、执行路径、用户账号及所在的目录位置。#!/bin/bash//调用bash进行解释#Thisscriptisatest!echo"Dateandtimeis:"dateecho"Theexecutablepathis:$PATH"echo"Yournameis:`whoami`"echo"Yourcurrentdirectoryis:"pwd#end见e2shell脚本的建立和执行说明:如果文件被标记为可执行的,但不是被编译过的程序,shell就认为它是个shell脚本从用户的观点看,执行shell脚本的方式与执行一般的可执行文件的方式相似。shell脚本经常被用来执行重复性的工作。Shell程序设计练习题(1)一、编写shell脚本文件实现下面的功能,给出命令序列,脚本名为s1在目录/home/xxxy下创建一个目录lx;在lx下创建一个文件hello.c;将hello.c打包成hello.c.tar;将其拷贝到/home/xxxy下查看/home/xxxy/hello.c的文件详细属性信息Shell程序设计练习题(1)二、用Shell编程实现下面的功能,给出命令序列,脚本名为s2。!提示:注意用户权限是否可以进行相关操作。1、在根目录下创建两个文件1.txt、2.txt2、在根目录下创建m1,m2两个目录3、将1.txt,2.txt两个文件分别拷贝到m1、m2目录下2shell特殊字符一般通配符引号注释一般通配符星号(*)功能:匹配任意字符的出现。*file匹配.profile?/etc目录下*.c文件的匹配模式:/etc*.c?/etc/*.c?.和/必须显示匹配问号(?)功能:匹配任意一个字符。方括号([])功能:匹配括号内所限定的任何一个字符如:f[abcd]匹配fa、fb、fc、fd√引号双引号”功能:双引号括起来的字符作为普通字符对待;$

、倒引号`、反斜线\这三个仍保留其特殊功能;$表示变量替换,用预先指定的变量值代替$和变量`倒引号表示命令替换,\反斜线在后面字符是$、`、”、\、换行符之一时,表示转义字符,即不对后面字符特殊处理引号双引号使用例题:ex3脚本如下echo“currentdirectoryis`pwd`”`pwd`表示命令替换,输出当前目录echo“homedirectoryis$HOME”$HOME表示变量替换,输出home目录echo“file*.?”原样输出普通字符echo“‘$HOME’”‘$HOME’当做普通字符,但单引号中的$HOME表示变量替换,应输出’home目录’引号单引号’功能:单引号括起来的字符都作为普通字符。单引号保留空白符用反斜杠消除单引号的特殊含义例如:echo‘“directory‘$HOME’”’单引号括起来的原样输出引号倒引号`:也称为命令替换符倒引号括起来的字符串被shell解释为命令行,每次先执行该命令行,然后用标准输出取代整个倒引号部分。可利用这个功能进行-命令置换,即把倒引号括起来的命令执行结果赋给指定变量.如:today=`date`echotodayis$today注意:此处today是变量,需要用变量的引用符号$来引用其值引号练习1:分析下列命令的含义和执行结果users=`who|wc–l`echothenumberofusersis$users练习2:执行下列命令,分析结果echo"`pwd`"和echo'`pwd`'echo“$HOME”、echo'$HOME‘、echo“'$HOME'”注释注释(#)功能shell将#看作注释符号,忽略#后的字符说明shell脚本中第一行:

#!/bin/bash

表示后面所跟的字符串是所使用shell的绝对路径。3shell变量变量是脚本编程中如何进行数据表现的方法。变量是表示计算机内存中保存的一种数据需要占的一个位置或一组位置的标识。变量名可以由数字,字符和下划线组成,但是变量名只能由字符和下划线开头,而不能是数字。3shell变量shell变量种类:系统变量:主要在判断命令参数和命令执行后的返回值时用到。环境变量:在程序运行时需要设置的变量。用户变量:局部变量由用户定义,用户可以定义、修改或删除他们。说明shell变量没有存储类和类型的限制可以使用时“边定义,边使用”3shell变量用户定义的变量环境变量显示和清除变量输入/输出命令命令行参数①用户定义的变量1.变量名命令规则以字母或下划线开头由字母、数字、下划线组成变量名区分大小写2.变量赋值格式变量名=字符串myfile=/home/xxxy/test1.c注意:赋值号两边不能有空格在赋给变量的值中含有空格、制表符或换行符,应该用双引号把这个字符串括起来。names="ZhangsanLisiWangwu"echo$names

①用户定义的变量3.引用变量值访问shell变量的值,必须在变量名前面加$符号。echo$myfile在句子中单独引用,如下例:person=“name:jack”echo$person

name:jackecho“Thisisapersonwho’s$person”Thisisapersonwho’sname:jack

①用户定义的变量删除用户变量person=nullecho$personnullunsetperson(清除变量)echo$person①用户定义的变量练习9:var=valueecho$var练习10:#!/bin/shmyvar="hi,there!"echo$myvarecho"$myvar"echo'$myvar'echo\$myvarechoentersomestring:readmyvarecho'$myvar'nowequlas$myvarexit0hi,therehi,there$myvar$myvarentersomestring:helloshell$myvarnowequlashelloshell

②环境变量可用env命令查看系统定义的所有环境变量HOME变量登陆后,shell将用户主目录的完整路径赋给变量HOME。LOGNAME注册名PATH变量输入命令的时候LINUX会去查找PATH里面记录的路径,冒号间隔各个目录shell查找命令时,如果在标准目录中找不到,就会到PATH所设置的用户目录中查找。②环境变量PS1变量shell的主提示符。PWD变量当前工作目录的路径SHELL变量设置用户登陆shell的完整路径TERM变量设置用户终端类型②环境变量练习12:各种系统环境变量的使用,理解其含义echo$HOMEecho$SHELLecho$PWDecho$TERMecho$PS1echo$LOGNAME说明与其它编程语言不同,shell不支持数据类型(如:整型、实型、字符型等)。它将任何赋给变量的值都解释为字符串。shell脚本中的变量将保存在内存中,直到该shell脚本结束或终止。也可以用unset命令清除变量。④输入/输出命令read命令利用read命令从键盘上读取数据,然后赋给指定的变量,可以交互式的为变量赋值。格式read变量1变量2。。。例:readnamereadabc说明:变量个数与给定数据个数相同,则依次对应赋值。变量个数少于数据个数,则从左至右对应赋值,最后一个变量被赋予剩余的所有数据。变量个数多于数据个数,则从左至右对应赋值,最后多余的变量不被赋值。

④输入/输出命令如:1、readxyzIloveyouecho$x$y$z2、readxyzIlovemymamaecho$z3、readxyzIecho$z④输入/输出命令练习13.功能:用户输入的字符串保存到变量中。将下列代码输入到脚本ex13中,执行ex13,观察输出结果。#anexampleprogramtoshowthereadcommand#echoecho-e"enteryourname:\c"readnameecho"$nameisme"echo④输入/输出命令练习14.功能:输入一个长句子,读入三个变量,分别显示这三个变量值。将下列代码输入到脚本ex14中,执行ex14,观察输出结果。#read_test#echoecho-e"Typeinalongsentence:\c"readword1word2restecho-e"$word1\n$word2\n$rest"echo"endofthetest"输入Hellomybaby④输入/输出命令2、echo命令:使用echo命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:echostringecho命令有很多功能,其中最常用的是下面几个:\c不换行。\f进纸。\t跳格。\n换行。-n禁止换行-e解释转义字符⑤系统变量介绍

shell的系统变量:$0

当前程序的名称,实际上是一个内部参数,它必须有!

$n

$1表示第一个参数,$2表示第二个参数,以此类推

.$#

命令行参数的个数,即传递给程序的总的参数数目$?

上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。$*

以“参数1参数2...”形式保存所有参数,即传递给程序的所有参数组成的字符串。

$@

以"参数1""参数2"...形式保存所有参数

$$

本程序的(进程ID号)PID$!

上一个命令的PID命令行参数位置变量命令行参数是用户键入命令后所跟的数据项,通常用空格分隔。shell脚本可以从命令行读取最多10个命令行参数存入位置变量或参数。位置变量按顺序从0至9计数,命名为$0、$1、$2,。。。例如:examm1m2m3m4…$0$1$2$3$4…命令行参数shell的位置变量使用shift

命令可以将参数后移变量含义$0表示这个程序的命令名或脚本文件名$1$2...$9这个程序的第1个到第9个命令行参数值$#这个程序的参数个数(不包含命令名)$*这个程序的所有参数:“$1$2…$9”,把所有的参数保存在一个串中$!执行上一个背景指令的PID

$?执行上一个指令的返回值。$$这个程序的进程ID号命令行参数练习15:test1#anexampleprogramtoshowtheshellvariables#echoecho"thefollowingisoutputofthe$0script:"echo"totalnumberofcommandlinearguments:$#"echo"thefirstparameteris:$1"echo"thesecondparameteris:$2"echo"thisisthelistofallisparameters:$*"echo①执行bashtest1,观察输出结果②执行bashtest1a1a2分析输出结果练习16:test2echoprogramnameis$0echoTherearetotally$#parameterspassedtothisprogramechoThelastis$?echoTheparametersare$*①执行bashtest2,观察输出结果②执行bashtest2a1a2分析输出结果命令行参数set命令功能给位置变量赋值的另一种方法是使用set命令。set命令中键入的参数被赋给位置变量。例子$setonetwothree echo$0$1$2bashonetwo命令行参数练习17:test3(重点理解此例题)#!/bin/shecho"Filename:$0"echo"Arguments:$*"echo"Number

of

args:$#"echo"2nd

arg:$2"

shiftecho"Arguments:$*"echo"Number

of

args:$#"echo"2nd

arg:$2"sethello,world#此处再换成sethelloworld,分析输出结果echo"Arguments:$*"echo"Number

of

args:$#"echo"2nd

arg:$2“执行bashtest3thisismyshell

4算术运算bash中执行整数算术运算的命令是let,其语法格式为:

letarg…其中arg是单独的算术表达式。它使用C语言中表达式的语法、优先级和结合性。所有整型运算符都得到支持.

4算术运算练习19#!/bin/basha=10b=5echo$aecho$becho$a+$bechoa+bletc=a+becho$c当表达式中有shell的特殊字符时,必须用双引号将其括起来。例如:a=1b=0let"c=a||b"

echo$clet“c=a&&b”echo$c

4算术运算4算术运算算术运算:expr命令功能该命令提供算术运算功能,并能对数字或非数字字符串进行计算。expr命令将参数作为表达式,计算该表达式并将结果显示在标准输出设备上。例如:(注意运算符左右都有空格!)expr10+10expr20/5expr$a+$b4算术运算说明:字符*(乘)在shell中有特殊含义,因此他们的前面必须有转义字符“\”如:expr2\*5当有变量参与运算时,需要在变量名前面加“$”如:a=11expr$a\%2Shell程序设计练习题(2)根据要求编写代码1、进行100+300+50的加运算,将结果存入数值变量sum2、定义a=3,b=5,输出a+b的和3、显示输出Yourcostis$5.001、 a=100b=300c=50letsum=a+b+cecho“100+300+50=$sum”2、a=3b=5letc=a+becho“a+b=$c”3、echo“yourcostis\$5.00”

5

为shell脚本添加控制结构控制流命令用来调整在shell脚本中命令的执行顺序if语句if…then…fi控制结构If…then…else控制结构If…then…elif控制结构条件测试test语句循环结构while控制结构util控制结构for…in控制结构for控制结构break与continuecase语句一if语句if–then-fi

结构语法格式:说明:if语句以fi结束。条件外面的方括号[]必不可少,条件前后必须加空格。

if[condition]then

commands …fi1if…then…fi控制结构1If…then…fi结构练习题例子1:判断shell脚本的参数个数是否为0,如果个数是0,则显示输出“youmusthaveatleastoneargument”,然后显示“programiscorrect

running!”根据题意建立下列脚本e1,运行命令分别为bashe1和bashe1one。观察运行结果if[$#-eq0]then

echo

"youmusthaveatleastoneargument"fiecho"program correctrunning"1If…then…fi结构练习题例子2:输入下列代码到脚本e2中,分析运行结果echo-n"inputname1:"readname1echo-n"inputname2:"readname2if[$name1=$name2]thenecho"match"fiecho"endtheprogram"2if…then…else控制结构if-then-else结构语法格式if[condition]then true-commandselse false-commandsfi2If…then…else控制结构语法与流程2if…then…else控制结构例子3:改进例子1,参数个数为0时,输出“youmustinputatleastonearg”;不为0时,输出“correctargnumber.”if[$#-eq0]thenecho"youmustinputatleastonearg"elseecho"correctargnumber"fi题目延展:如果参数个数不为0时,请输出输入的参数个数,请问:需修改的语句是?练习:判断当前运行脚本是否有参数,若没有参数则输出“noargs”,否则输出当前的参数if[$#=0]thenecho"noargs"elseecho"$@"fi

其中$#表示参数的个数,$@取到所有的参数值。

3if-then-elif结构if-then-elif结构if[condition_1]then commands_1elif[condition_2]then

commands_2…else commands_nfi3if-then-elif结构语法与流程3if-then-elif结构例子4:使用if-then-elif结构实现下面的功能:执行脚本e4,输入的命令行第一个参数必须是hello时,程序结果显示”hello!howareyou?”;否则,如果第一个参数为空,则显示”youmustinputparameters”;其他情况时,显示"Theonlyacceptparameterishello"#!/bin/bash#e4if["$1"="hello"]then echo"hello!howareyou?"elif["$1"=""]then echo"youmustinputparameters"else echo"Theonlyacceptparameterishello"fi3if-then-elif结构练习题

#!/bin/shecho"name1"readname1echo"name2"readname2echo"name3"readname3if["$name1"="$name2"-a"$name2"="$name3"]thenecho"matchname1,name2andname3"elif["$name1"="$name2"];thenecho"matchname1,name2"elif["$name1"="$name3"];thenecho"matchname1,name3"elif["$name2"="$name3"];thenecho"matchname2,name3"elseecho"nomacth"fi二条件测试testtest命令功能test是shell内部命令,它计算参数表达式的值为真还是为假。如果表达式为真,test返回0,否则,返回非0值。

二条件测试例子5:用test命令判断if条件的示例脚本e5。#!/bin/bashecho“areyouok?”echo-e“InputYforyesandNforno:\c”readanswerif

test$answer=“Y”

then echo“gladtohearthat!”else echo“gohome!” #任何非Y输入都会使if条件为假fiecho练习:改进例子5,使用if…elif…else结构使其判断输入字符为y,输出“gladtohear”判断输入字符为n,输出“Iamsorry”判断输入字符为非“y、n”其他字符,输出“wronginput”二条件测试说明:shell提供了另外两种调用test命令的方法,即用方括号来代替单词test:if

test$answer=“Y”if[“$answer”=Y]If、test语句练习1、用read命令输入两个变量name1、name2,判断两个变量的值,若相等则显示输出“match!”,否则显示输出“end!”echo"inputname1"readname1echo"inputname2"readname2iftest"$name1"="$name2"//注意等号两边的空格thenecho"match!"fiecho"endtheprogram!"用if…then…else…fi结构修改上一个例子,对不能匹配的结果,给出相应输出提示二条件测试有关文件方面的测试可以用test命令检测文件属性,如文件长度、文件类型和文件权限等。操作符功能-r文件是否存在并且用户可读-w文件是否存在并且用户可写-s文件是否存在并且长度非0-f文件是否存在并且是普通文件-d文件是否存在并且是目录文件If语句练习例子1:阅读下列代码,分析代码功能,给出运行结果iftest-f"$1"then echo"$1isafileintheworkingdirectory"

else echo"$1isadirectoryintheworking

directory"fi二条件测试例2:设用户有一个名为myfile的文件,其权限为只读。通过脚本来检测文件属性,给出相应提示。#test2FILE=myfileiftest-r"$FILE"

then echo"READABLE";eliftest-w"$FILE"

then echo"WRITABLE";else echo"ReadandWriteAccessDenied";fi二条件测试例子3:测试文件是否是一个普通文件。若是,则显示相应信息。#test3iftest–f“$1”

thenecho"$1isanordinaryfile."elseecho"$1isnotanordinaryfile."fi二条件测试说明:条件测试可以利用一般命令执行是否成功来判断。如果命令正常结束,则测试条件为真,其返回值为0;否则,测试条件为假,其返回值不等于0。二条件测试有关字符串方面的测试也可以用test命令比较字符串。test命令为字符串比较提供了一组操作符。操作符示例功能-z-zstr1字符串str1长度为0,测试结果为真-n-nstr1字符串str1长度大于0,测试结果为真=str1=str2字符串相等!=str1!=str2字符串不相等<str1<str2str1小于str2>str1>str2str1大于str2二条件测试例子:比较两个字符串str1和str2(见strcmp)str1="opq"str2="opr"①if[$str1=$str2]thenecho"str1equaltostr2."elseecho"str1notequaltostr2."fi②if[$str1]thenecho"str1isnotempty."elseecho"str1isempty."fi③if[-n$str2]thenecho"str2hasalengthgreaterthanzero."elseecho"str2haslengthequaltozero."fi二条件测试逻辑运算符逻辑与(AND)运算符:-a如果两个表达式都为真,则test命令返回0(条件测试为真)逻辑或(OR)运算符:-o如果两个表达式中一个或两个都为真,则test命令返回0(条件测试为真)逻辑非(NOT)运算符:!如果表达式为假,则test命令返回0(条件测试为真)二条件测试有关数值方面的测试test命令的数值判断操作符操作符示例功能-eqnum1-eqnum2num1等于num2,测试为真。

-nenum1-nenum2num1不等于num2-gtnum1-gtnum2num1大于num2-genum1-genum2num1大于等于num2-ltnum1-ltnum2num1小于num2-lenum1-lenum2num1小于等于num2二条件测试例子1:测试语句。test_logic

echo-n"keyinanumber(1-10):"readaif["$a"-lt1-o"$a"-gt10] thenecho"errornumber." elif[!"$a"-lt5] then echo"It'snotless5."elseecho"It'sless5."fiecho"acceptkeyinvalue."二条件测试例子2:输入3个数,求最大值,max_valueecho"Enterthreenumbers:"readnum1num2num3iftest"$num1"-gt"$num2"-a"$num1"-gt"$num3"thenecho"Thelargestnumberis:$num1"eliftest"$num2"-gt"$num1"-a"$num2"-gt"$num3"thenecho"Thelargestnumberis:$num2"elseecho"Thelargestnumberis:$num3"fiecho"Done!"exit0if["$num1"-gt"$num2"-a"$num1"-gt"$num3"]三case语句格式case

字符串in模式字符串1) 命令;;模式字符串2) 命令;;模式字符串n) 命令;;esac三case语句说明:case语句以case关键字开头,以esca结束每个模式字符串后可以跟多条命令,其最后一条必须以两个分号(;;)结束各个模式字符串应唯一,不应重复出现可以用(*)作为最后一个模式字符串,可以匹配任何情况三case语句例子case_ex1echo"Pleasechoseeither1,2or3"echo"[1]displayafile"echo"[2]deleteafile"echo"[3]quit"readresponsecase$responsein1)catmyfile;;2)rmmyfile;;3)echo“Goodbye”;;esac三case语句例子case_ex2echo"Pleasechoseeither1,2or3"echo"[1]displayafile"echo"[2]deleteafile"echo"[3]quit"readresponsecase$responsein1)catmyfile;;2)rmmyfile;;3)echo"Goodbye";;*)echo“others”;;

esac三case语句例子case_ex3:检查命令行中的第一个参数是否为-b,如果是,则计算第二个参数指定的文件中以b开头的行数;如果第一个参数是以-s开头,则统计文件中以s开头的行数。如果都不是,则显示提示信息。case$1in-b)count=`grep^b$2|wc-l`echo"Thenumberoflinesin$2thatstartwithbis$count.";;-s)count=`grep^s$2|wc-l`echo"Thenumberoflinesin$2thatstartwithsis$count.";;*)echo"Thatoptionisnotrecognized.";;esac执行命令:bashex3–bb.txt(事先存在)bashex3–sb.txt(事先存在)三case语句说明:模式字符串可以使用通配符,例case_ex4case$1in-u)echo"Searching/home/`logname`for:$2"find/home/`logname`-name$2-print;;-c)echo"Searchingforcommand:$2"find/bin/usr/bin/etc-name$2-print;;*)echo"invalidfirstargument.";;esac三case语句说明:如果一个模式字符串中包含多个模式,那么各模式之间用“|”分隔开。例case_ex5case$1intime|date)echo"Thetimeis`date`";;dir|path)echo"currentdirectoryis`pwd`";;*)echo"badargument";;esacShell脚本控制结构课堂练习(一)1、编写脚本实现下面功能(使用case结构):生成一个菜单先显示提示信息:“请输入你的选择:”显示“1:上”显示“2:下”显示“3:左”显示“4:右”根据输入的数字,显示如下菜单内容:“你选择的是上”“你选择的是下”“你选择的是左”“你选择的是右”“你没选择1,2,3,4“Shell脚本控制结构课堂练习(一)2、编写脚本实现下面功能(使用if-elif-fi结构):先显示提示信息:“请输入你的选择:”显示“1:删除文件file”显示“2:重命名文件file为myfile”从键盘读入输入选择的数字显示“你的选择为数字*”如果选择数字1,删除文件file如果选择数字2,将文件file重命名为myfile最后显示“程序结束”四循环结构shell提供了三种循环结构:while循环:while-do-done结构until循环:until-do-done结构for循环:for-in-done结构1、while循环功能while循环只要循环条件为真就进入循环体。格式while[condition]do commandsdonewhile控制结构语法与流程1、while循环例1:只要用户键入Y,循环条件为真,循环体就重复执行,(循环体内容为显示输出“dowhileyouinputy”)。键入任何非Y的字符,程序结束,输出“programisend”。#loop_ex1carryon=Ywhile[“$carryon”=Y] do echo-e“IdothejobaslongasyoutypeY:\c” readcarryondoneecho“JobDone!”1、while循环例2:计算变量count从1-9自增1后的值#countsfrom1-9usingwhileloopandtheletcommandloop_ex2echocount=1while[$count-lt10] do echo$c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论