Linux试验四shell编程一_第1页
Linux试验四shell编程一_第2页
Linux试验四shell编程一_第3页
Linux试验四shell编程一_第4页
Linux试验四shell编程一_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验四shell编程(一)一、实验目的1、了解shell的概念2、了解shell变量的种类及其使用3、理解和掌握条件测试的原理和方法4、掌握用VI创建shell脚本的方法5、掌握shell脚本的执行方法二、实验环境安装了Linux系统的计算机一台[yanjitaiocalhostvi[yanjitaiocalhostpsPIDTTY TIME CMD2627pts/E)06:00:00bash2690ptS/006:00:00ps[yanjitaiacalhostecho"Numberofparametersis:"$#Numberofparametersis:Q[yanji@localhostecho"Programnameis:"$BProgramnameis:ba5h[yanji(alocalhostecho"Parametersd5asinglestringis:"$*Parameters己5asinglestringis:[yanjitalacalhost(二)SHELL中的特殊字符1、通配符通常的通配符有三种:*星号,它匹配任意字符的0次或多次出现。但注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显示匹配。?问号,它匹配任意一个字符。应该注意:字符*和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。!叹号,若它紧跟在一对方括号的左方括号[之后,则表示不在一对方括号中所列出的字符。[/anji^ccalhost Is-xchap*chapOLchap02chapOJchapG4chapQSchapxch两乙[yanji@localho5t IschapichapQLchap02chap03chap64chap05chapxchapz[yanji@^ccalhost Ischap??chapOLchap02th叩03chapG4chap05[/anji^ccalhost IsIs:无法访问时力:没有那十文件或目录[yanjKBiXocaLhostmymy1my2my3上壮白。:模枷:■]$Is[ITiLe]*・迥频:图片:白-产1:下赳:S岳;克t±r;分析:除了file文件,其他都列出来2、引号在SHELL中引号分为三种:单引号、双引号、和倒引号。(1)双引号由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其功能外,其余字符通常作为普通字符对待。[yan:WalhD5t-]secho'Cmandsubsti:u:ionuses'''JtileTEfllisevaluatedusing?TERH"Connard灿我it」二。nu免。whileTERMise^luated也叩xtern[yanjWalhost-]secho'uiyUoue/yand"-louc”的c2)单引号由单引号括起来的字符都作为普通字符出现。(3)倒引号:odayis:\\n[yanji@l-ocalhost〜]$echo'yarjUaiocalhostechoThedateisdate'hedate152016年12月〃日星期二09:33:16C5T分析:单引号括起来的字符都作为普通字符出现;反引号包围起来的字符串被运行,date显示当前的日期。(4)反斜线

转义字符,若想在字符串中使用反斜线本身,则必须采用(\\)的形式,其中第一个反斜线作为转义字符,而把第二个反斜线变为普通字符。[yanji@Localhost echo \\I[yarji(ai0calb0st echo the newfileisthenewfilei5[yarjitalocalhoat echo the newfileia \\nthenewfile15\n(三)条件测试1.字符串比较= 比较两个字符串是否相等!= 比较两个字符串是否不相等-n 判断字符长度是否大于零-z 判断字符长度是否等于零yarjic^LocaLhost-J$yanji@l-ocaIh-ost-]$[yanji@l-Qcalhost$;yanjicaiocalhost[yanji@l-ocalhost-]$;yanji^localhost[yanji@localhost-]$Dash:[:missing']';yanjic5tocalho51~]$;yanjic31ocalhost$[yanji@l-ocalhost-]$Lsss=ssssJecho$?[sss=Lsss=ssssJecho$?[sss=sss]echo$7[sss!=ssss1echo$?L-n'LoLo'J[-n'Lo']echo$?[-n"]echoi?;yanjic3localhost~,yanjic^localhost-3;ydnjicaiacalhQ51Dasti:syntaxerror;yanjicaiocalhost-;yanjic^localhost~[-Z"]echo$?]$[-z;;]nearunexpected]$[-z'ss']]$echo$?taken分析:条件测试中,字符串比较有两种方法:1、test字符操作符字符;2[字符操作符字符],用echo$?显示结果,条件成立时,测试结果返回值为0,否则为1。上图中字符串sss不等于ssss,返回值为12.数字比较-eq比较两个数是否相等-ge比较一个数是否大于或是等于另一个数-le比较一个数是否大于或是等于另一个数-ne比较两个数是否不等-gt比较一个数是否大于另一个数-lt比较一个数是否小于另一个数[yanjifaiocaLhost[yanjitaiocaLhosttest12-eq12~]$echo$?[yanji(3localhost[yanjitaiocaLhost1test12-eq123echo$?[yanjitatocalhost[yanjifaiocalhost[12-ge10]echo$?[yanjifaiocalhost$test12-le12[yanjifaiocaLhost-]$echo$?0[yanji(aiocalhost test 10 -gt10[yanjKaiocaLhost echo $?[yanjifaiocalhost test 1-It2[yanjifaiocalhost echo $?0[yanjifaiocaLhost-]$分析:数字比较有两种方法:1、test整数操作符整数;2[整数操作符整数],用echo$?显示结果,条件成立时,测试结果返回值为0,否则为1。上图中,test12-eq12条件成立,返回值为0。3.文件操作符d 确定文件是否为目录f 确定文件是否为普通文件r 确定是否对文件设置了读许可s 确定文件名是否具有大于零的长度W 确定文件是否设置了写许可X 确定文件是否设置了执行许可[yanji'^lacalhiQstLs55chap04chap05chapxchapzdii叫oo於拄的模般视舞图片文档下载音乐点面[yamji(alo€alhQst=〕$test-doo[yanji^localhiDstechos?[yamji^localhiDst〜]$test-fchap04[yanji{alQcalhio&t〜]$echoS?[yanji®localhiosttest-r[yanjLMocalhiostechos?[yanjl^localhicisttest-s»yhanji@10calhostdiechos?[^anjl@locBlhost〜]1$test-w・y[yanji^localhiCiST-]$echos?[yanji^localhiosttest-x[yanji^lotalhiost-]$echos?[yanji@localhiost-]$Is-Imy-rw-n^-r-^1yanji^anji012月2616:21my[yanji@localliDst'■]$test-5chap@4[/anji@localhastT$echo5T[yanjyan|i@iocalhMt^分析:条件测试中,文件操作符有两种方法:1、test操作符文件或目录;2[操作符文件或目录],用echo$?显示结果,条件成立时,测试结果返回值为0,否则为1。上图中,text-xmy条件不成立,返回值为1,用ls显示my的文件属性为664证明没有执行许可。测试语句:有两种常用形式:一种是用test命令,如上所示。另一种是用一对方括号将测试条件括起来。两种形式完全等价。例如,测试位置参数$1是否是已存在的普通文件,可写成:test-f〃$1〃,也完全可写成:[-f$l]在格式上应注意,如果在test语句中使用shell变量,为表示完整、避免造成歧异起见最好用双引号将变量括起来。利用一对方括号表示条件测试时,在左方括号[之后、右方括号]之前各应有空格。(四)创建简单shell程序1、进入丫1编辑器2、编写程序例:#!/bin/bashhello()(echo"hellotheretoday,sdateis:date〃)echo"nowgoingtothefunctionhello"helloecho"backfromthefunction"#end#!/bin/bashhelloecho"hellotheretoday'sdateis:ddte"echo"nowgoingtotheftrctiontiello"helloecho"backfromthefurctior"除nd分析:注意开头定义在/bin/bash目录下脚本,保存文件名为hello.sh(五)执行shell程序的方法方法一:加执行权后,程序完整路径引导。方法二:点空格引导例如:./aa.sh方法三:无需加执行权,通过bash命令执行,以shell程序名为bash命令参数分析:这里运用了其中两个方法:1、通过bash命令执行,以shell程序名为bash命令参数,即输入命令:bashhello.sh回车后运行脚本[yanji@localhostshhello.nowgoingtothefunctionhellohellotheretoday'sdate016年12月26日星期一17:27:15CSTbackfromthefunction[yanjKatoralhostbashhello.shnowgoingtothefunctionhellohellotheretoday'sdateis:2016^12月26日星期一17:28:17CSTbackfromthefunction2、点空格引导./hello,sh,因为缺少执行权限,用chomd命令添加权限后,再输入:./hello.sh后即可运行脚本。[yanji@localhost./hello.shbash:./hello.sh:4限不够[yanji@localhostiIs-Ihello.sh-rw-rw-r-1yanjiyanji14612月2617:22hello.sh[yanjitaiocalhost$chmodu+x,g+xro+wxhello.sh[yanji@localhost-]$Is-Ihello.sh-rwxrwxrwx1yanjiyanji14612月2617:22hello.sh[yanjitaiocalhost•]$./hello.shnowgoingtothefunctionhellohellotheretoday'sdate=:2日16年12月26日星期一17:30:51CSTbackfromthefunction[yanji@lccalhost-]$四、实验总结1、通过实验,我进一步了解shell变量的种类及其使用;2、我基本掌握了建立了shell脚本的方法,和掌握运行shell脚本的方法,对今后深入的学习有重要意义。三、实验过程(实验步骤、记录、数据、分析、结果)1.Shell变量的定义及其使用。2.位置参数和环境变量。3.Shell中的特殊字符。(一)Shell变量Shell有两

温馨提示

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

评论

0/150

提交评论