实验七 shell编程实验

合集下载

Shell编程试验

Shell编程试验

实验编号:四川师大LINUX程序设计实验报告 2012年10月15日计算机科学学院2010级 1班实验名称:Shell编程试验姓名:杨军学号: 2010110140 指导老师:张莹实验二Shell编程试验1.目的要求(1)熟悉Shell环境和常用功能;(2)掌握Shell基本语法结构,并能编写简单的Shell程序。

(3)独立完成Shell课程设计——CD Manager2.实验内容(1)命令补齐功能●用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。

●用mkdir命令创建新的目录。

首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。

●再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。

●在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。

●最后输入要创建的目录名,按回车键执行命令。

●多试几个命令利用tab键补齐。

(2)命令别名功能●输入alias命令,显示目前已经设置好的命令的别名。

●设置别名ls为ls –l,以长格形式显示文件列表:#alias ls=‗ls -l‘。

●显示别名ls代表的命令,确认设置生效:#alias ls。

●使用别名ls显示当前目录中的文件列表。

●在使定义的别名不失效的情况下,使用系统的ls命令显示当前目录中的命令列表:#\ls。

●删除别名ls:#unalias ls。

●显示别名ls,确认删除别名已经生效:#alias ls。

●最后再用命令ls 显示当前目录中的文件列表。

●写出定义别名cd为cd /etc的命令alias cd =‘cd/etc‘ 。

(3)输出重定向●用ls命令显示当前目录中的文件列表:#ls –l。

●使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:#ls –l > list。

Shell编程实验指导

Shell编程实验指导

Shell编程实验一、实验目的了解 Shell 的作用和主要分类。

了解 Bash的一般语法规则。

练习编写简单的shell程序。

二、实验内容1.Shell变量的定义及其使用。

2.位置参数和环境变量。

3.Shell中的特殊字符。

4.条件判断结构与循环结构5.函数的定义和使用三、预备知识1、LINUX环境下常用命令和VI编辑器的操作。

2、了解Shell作用和主要分类等基础知识。

四、实验设备及工具软件:PC机操作系统REDHAT ELAS4环境五、实验原理及说明Shell是Linux系统中一个重要的层次,它是用户与系统交互作用的界面。

在介绍Linux 命令时,Shell都作为命令解释程序出现:它接收用户打入的命令,进行分析,创建子进程实现命令所规定的功能,等子进程终止工作后,发出提示符。

这是Shell最常见的使用方式。

Shell 除了作为命令解释程序以外,还是一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if, case, while, for 等语句,有自己的语法结构。

利用Shell程序设计语言可以编写出功能很强、但代码简单的程序,特别是它把相关的Linux命令有机地组合在一起,可大大提高编程的效率,充分利用Linux系统的开放性能,设计出适合自己要求的命令。

六、实验步骤语法练习1.语法练习(1) Shell变量Shell有两种变量:环境变量和临时变量。

在Shell脚本中临时变量又分为两类:用户定义的变量和位置参数。

用户定义的变量用户定义的变量是最普遍的Shell变量,变量名是以字母或下化线打头的字母、数字和下线符序列,并且大小写字母意义不同。

变量名的长度不受限制。

定义变量并赋值的一般形式是:变量名=字符串例如,MYFILE=/usr/meng/ff/m1.ca.定义并显示变量的值在程序中使用变量的值时,要在变量名前面加上一个符号“$”。

这个符号告诉Shell,要读取该变量的值。

练习1.1:$ dir=/usr/mengqc/file1$ echo $ dir/usr/mengqc/file1$ echo dirdir$ today=Sunday$ echo $ today $ TodaySunday$ str="Hapy New Year ! "$ echo "Wish You $str"Wish You Happy New Year !b.read命令作为交互式输入手段,可以利用read命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。

Shell编程实验

Shell编程实验

实验报告的基本内容及要求
1.实验预习
在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。

对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。

设计性实验要求进入实验室前写出实验方案。

2.实验记录
学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。

实验记录中应有指导教师的签名。

3.实验总结
主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。

实验报告学院:专业:班级:2010级
注:各学院可根据教学需要对以上栏木进行增减。

表格内容可根据内容扩充。

【最新精选】shell编程实验报告

【最新精选】shell编程实验报告

南京信息工程大学实验(实习)报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell 脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat >new_script⑵输入下列行:echo “Your files are”lsecho “today is”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:cat new_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls –l new _script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod +x new_script⑺要查看新的权限,输入:ls –l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:command not found输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell 语言编制一Shell 程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of program”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of program”。

Shell编程实验报告.doc

Shell编程实验报告.doc

Shell编程实验报告【实验目的】1、了解和熟悉创建并使用脚本的步骤。

2、熟悉bash的控制结构。

3、学会简单的shell编程。

【实验内容】1、创建一个简单的列目录和日期的shell脚本并运行之。

步骤:⑴输入下列命令,创建一个新文件:cat>new_script⑵输入下列行:echo“Yourfilesare”lsecho“todayis”date按回车键将光标移到一个新行,按Ctrl+D键保存并退出。

⑶检查文件内容,确保它是正确的:catnew_script⑷运行脚本,输入它的文件名:new_script该脚本不运行。

⑸输入下列命令,显示文件的权限:ls–lnew_script权限表明该文件不是可执行。

要通过简单调用文件名来运行脚本,必须有权限。

⑹输入下列命令,使new_script变成可执行文件。

chmod+xnew_script⑺要查看新的权限,输入:ls–l现在拥有文件的读、写和执行权限。

⑻输入新脚本的名字以执行它:new_script所有输入到文件的命令都执行,并输出到屏幕上。

⑼如果接收到错误信息,比如:commandnotfound输入下列命令:./new_script该命令行通知shell到哪里寻找shell脚本new_script,即您的当前目录“.”。

程序运行过程如下:2、用Shell语言编制一Shell程序,该程序在用户输入年、月之后,自动打印数出该年该月的日历。

程序运行过程如下:3、编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“Endofprogram”,如果不同则显示“Endofprogram”。

程序运行过程如下:4、修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Notmatch”,最后显示“Endofprogram”。

请使用if…then…else控制结构。

shell系统实验报告

shell系统实验报告

shell系统实验报告《Shell系统实验报告》摘要:本实验通过对shell系统的学习和实践,对shell脚本编程进行了深入的研究和探讨。

通过实验,我们深入了解了shell系统的基本概念、语法和功能,并通过实际编程实践加深了对shell脚本的理解和掌握。

本实验报告将对实验过程、实验结果和实验感想进行详细的介绍和分析。

一、实验目的通过本次实验,我们的主要目的是深入了解shell系统的基本概念和语法,掌握shell脚本编程的基本方法和技巧,提高对Linux系统的操作和管理能力。

二、实验过程1. 学习shell系统的基本概念和语法规则;2. 编写简单的shell脚本,包括文件操作、流程控制、函数定义等;3. 运行和调试编写的shell脚本,检验脚本的正确性和可靠性;4. 分析实验结果,总结实验感想。

三、实验结果通过本次实验,我们深入了解了shell系统的基本概念和语法规则,掌握了shell 脚本编程的基本方法和技巧。

我们成功编写了一些简单的shell脚本,包括文件操作、流程控制、函数定义等,通过运行和调试这些脚本,我们验证了它们的正确性和可靠性。

实验结果表明,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

四、实验感想通过本次实验,我们对shell系统有了更深入的认识和理解,对Linux系统的操作和管理能力得到了提高。

我们深刻体会到了shell脚本编程的重要性和实用性,相信在今后的工作和学习中,我们会更加熟练地运用shell系统,提高工作效率和解决实际问题。

同时,我们也意识到了自己在shell系统方面的不足之处,今后需要进一步学习和实践,不断提高自己的技能水平。

综上所述,本次实验对我们的学习和成长都具有重要意义,我们将继续努力学习和提高自己,在shell系统和Linux系统方面取得更大的进步和成就。

shell命令解释器实验报告

shell命令解释器实验报告

实验报告实验名称:实现一个shell命令解释器学员:学号:年级:专业:所属学院:计算机学院指导教员:职称:实验室:实验日期:目录1.功能描述 (3)2.主要数据结构 (3)3.主要程序流程图 (4)4.主要功能实现方法和系统调用 (4)4.1初始化环境 (4)4.2打印提示符,获取用户输入 (5)4.3解析命令 (5)4.4执行命令 (5)4.4.1内部命令 (5)4.4.2外部命令 (5)4.4.3重定向功能 (6)4.4.4管道功能 (6)5.测试结果 (7)6.心得体会 (10)1.功能描述本实验完成了一个shell命令解释器,实现了shell的解释命令功能,实现了内部命令(包括自定义命令)、外部命令、重定向功能和多管道等功能。

具体功能描述如下:1)内部命令:●可以使用常用的如cd、echo、history、exit等命令●自定义命令1)smile命令:打印出笑脸2)myinfo命令:打印出作者信息和版本信息2)外部命令:可实现cp、rm等所有外部命令。

3)重定向:通过输入重定向符号’<’ 或输出重定向’>’ ,把一行命令分成两部分,前者为需要执行的命令,后者为一个重定向文件。

输入重定向是把文件内容作为输入传到前面的命令中,而输出重定向则是把命令的结果传入重定向文件中。

4)管道:通过管道符号’|’ 把一条命令分成两部分,前一部分命令运行后,将结果放入管道,后一部分命令从管道中取出该结果,作为输入继续执行。

最多可以实现10个管道。

2.主要数据结构本程序主要使用字符数组进行命令、路径的存储与分析。

3.主要程序流程图命令的分析执行过程包括:初始化环境,打印提示符,获取用户输入命令,解析命令,寻找命令文件和执行命令,如图1。

图1程序设计流程图4.主要功能实现方法和系统调用下面将详细说明本shell解释器的实现原理和所用到的系统调用。

总结起来用到的系统调用主要有:Open();close();dup();pipe();execv();chdir();getcwd();如何使用这些系统调用实现shell的各项功能,下面将详细说明。

实验七 shell编程

实验七 shell编程

实验七实验基本信息实验名称:shell编程实验时间:2020年4月8日实验地点:实验室实验目的:1、熟练掌握vim编程器的使用2、理解Shell脚本的建立与执行3、理解Shell变量的种类和作用4、理解测试命令、算术与逻辑运算5、理解Shell程序设计的流程控制6、熟练掌握Shell脚本的执行7、熟练掌握Shell程序设计的流程控制实验过程描述一、vim编程器的使用1、vim简介Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。

代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线。

Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

2、vim工作模式Vi/vim分为三种工作模式,分别是命令模式,输入模式,底线命令模式3、常用命令命令含义命令含义k 光标向上i 进入输入模式j 光标向下esc 回到命令模式h 光标向左:进入底线模式l 光标向右:w 在底线模式下输入,保存文件0 跳转到当前行的开始:q 在底线模式下输入,退出文件$ 跳转到当前行的末尾:wq 在底线模式下输入,保存后退出G 跳转到最后一行:q!在底线模式下输入,强制退出gg 跳转到第一行:/word 在底线模式下输入,搜索关键词dd 删除当前行n 向下搜yy 复制当前行N 向上搜u 撤销上一步:new 底线模式,创建空白分屏p 粘贴到下一行:split file 水平分割ctrl+f 向下一页:vsplit file 垂直分割ctrl+b 向上一页ctrl+w 切换ctrl+d 向下半页ctrl+w+方向键切换分屏ctrl+u 向上半页二、理解Shell脚本的建立与执行执行shell程序有三种方法方法1格式:bash <脚本所在的路径> [参数] 或sh <脚本所在的路径> [参数]调用新的bash命令解释程序,而把shell程序文件名作为参数传递给他。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七 LINUX-Shell编程一.实验名称:Shell 简单编程实验和较复杂的考勤模拟shell程序设计二.实验目的:理解Shell程序的设计方法;熟悉Shell程序的编辑、运行、调试方法与过程。

三.实验内容:考勤模拟Shell程序设计用shell设计一个模拟考勤程序,实现如下功能选择界面:1:上班签到2:下班签出3:缺勤信息查阅考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在userinfo.dat中。

如果是上班签到,记录签到信息,如果签到时间大于上午8时,则提示用户迟到,并记录该迟到信息到check.dat中。

如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到check.dat。

如果用户选择确信信息查询,则将check.dat中对应的用户迟到早退的信息查询出来并显示。

用户选择功能执行完,Shell程序继续回到功能选择界面等待下一个用户进行操作。

四.实验要求:1、掌握Shell程序的编辑、运行、调试方法2、完成实验内容要求的功能五.简单SHELL实验:请在vi中逐一编辑并执行以下6个shell脚本程序1.编写一个简单的回显用户名的shell程序。

#vi dat#!/bin/bash#filename:datecho "Mr.$USER,Today is:"echo `date`echo Wish you a lucky day!#chmod +x dat#./dat2.使用if-then语句创建简单的shell程序。

#vi bbbb#!/bin/bash#filename:bbbbecho -n "Do you want to continue: Y or N"read ANSWERif [ $ANSWER=N -o $ANSWER=n ]thenexitfi#chmod +x bbbb#./bbbb3.使用if-then-else语句创建一个根据输入的分数判断是否及格的shell程序。

#vi ak#!/bin/bash#filename:akecho -n "please input a score:"read SCOREecho "You input Score is $SCORE"if [ $SCORE -ge 60 ];thenecho -n "Congratulation!You Pass the examination."elseecho -n "Sorry!You Fail the examination!"fiecho -n "press any key to continue!"read $GOOUT#chmod +x ak#./ak4.使用for语句创建简单的shell程序。

#vi mm#!/bin/bash#filename:mmfor ab in 1 2 3 4doecho $abdone#chmod +x mm#./mm5.使用while语句创建一个计算1-5的平方的shell程序。

#vi zx#!/bin/bash#filename:zxint=1while [ $int -le 5 ]dosq=`expr $int \* $int`echo $sqint=`expr $int + 1`doneecho "Job completed"#chmod +x zx#./zx6.使用while语句创建一个根据输入的数值求累加和(1+2+3+4+…+n)的shell程序。

#vi sum#!/bin/bash#filename:sumecho -n "Please Input Number:"read NUMnumber=0sum=0while [ $number -le $NUM ]doecho numberecho "$number"number=`expr $number + 1 `echo sumecho "$sum"sum=` expr $sum + $number `doneecho#chmod +x sum#./sum六.较复杂SHELL实验(使用VI编辑下面代码) # vi testshell#! /bin/bash#filename:shelltestexsig=0while true; doecho ""echo "----欢迎使用本系统----"echo " 1. 上班签到"echo " 2. 下班签出"echo " 3. 考勤信息查询"echo " 4. 退出系统"echo "----------------------"echo ""echo "请输入你的选项:"read choicecase $choice in1)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoecho "$fname"echo "$fpassword"if test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho "不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elsehour=`date +%H`if test "$hour" -gt 8thenecho "你迟到了!"echo "$name 上班迟到---日期:`date`" >>/home/user/check.dat elseecho "早上好,$name!"fifi;;2)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho " 不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elsehour=`date +%H`if test "$hour" -lt 18thenecho "你早退了!"echo "$name 下班早退----日期:`date`">> /home/user/check.dat elseecho "再见,$name!"fifi;;3)echo "请输入你的名字:"read nameecho "请输入你的密码:"read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test "$fname" = "$name"thenbreakfidone < /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test "$fname" != "$name"thenecho "不存在该用户!"elif test "$fpassword" != "$password"thenecho "密码不正确!"elseecho "你的记录:"echo "---------"cat -b /home/user/check.dat|grep $nameecho "---------"fi;;4)echo "欢迎你的使用,再见!"exsig=1;;*)echo "请输入合法的选项!";;esacif test "$exsig" = "1"thenbreakfidone七.试验运行结果:#chmod +x testshell#./testshell八.注意事项1. 上面的实验需要在/home/user下有userinfo.dat文件2. 该userdat.dat文件内容可如下样式:Wang 23456Li 22233……。

相关文档
最新文档