Linux实验报告(实验四) shell编程实验
Linux实验报告-Shell 编程 测试
【实训3】编写Shell程序计算1—50之间所有奇数之和,分别采用while和until两种结构实现
编译源码
3)执行程序
2. until测试
1)进入vi编辑器
2)编译源码
3)执行程序
二、实验分析与总结
通过在本次实训中的练习,对 Shell编程有了一定新的认识,增加了动手实践能力。但是也发现了一些小问题,由于 Shell编程是一门若编程语言,所以对于有些编程细节问题需要特别注意——比如 源程序中空格问题,变量前面要有空格, 常量则不需要空格。。。
注:开课时间填本实验项目所有实验班的具体上课时间,如11月12日下午3:00-5:00。
河南师范大学综合性、设计性实验项目简介
学院名称(公章):软件学院学年2014 - 2015第1学期 填表日期:2014年12月02_日
实验课程名称
Linux操作系统
实验项目名称
Shell编程测试
实验项目性质
1、综合性2、设计性
主讲教师
袁培燕
开课年级
2012级
开课专业
Java
实验地点
过街楼B区
开课日期
1)进入vi编辑器
2)编辑代码
3)执行程序的命令为
4)其中file2 为链接文件
5)执行程序
6)执行结果 链接文件 file2 被移除
7)
【实训 2】编写Shell程序使用 select命令生成选择菜单,允许用户在菜单中选择,并基于选择执行的相应命令
1)进入vi编辑器
2)编辑代码
3)执行程序
4)执行结果
2014.09.01
开课时间
1—18周
一、实训目标
(1)了解Shell编程中变量的定义与赋值操作
linux实验报告-shell编程-平方与菜单实现
四、实验报告内容
1)编写一个shell脚本程序pingfang,计算1到10之间整数的平方值。
比如,在命令行下运行:./pingfang 5后屏幕上显示:25
脚本程序如下所示:
运行结果如下:
(2) 编写1个弹出式菜单的shell程序并实现其简单的菜单功能:
*******************************************************
* MENU *
* 1.copy 2.rename *
* 3.remove 4.find *
* 5.exit *
*******************************************************
即用户按下数字1,则提示用户输入源和目的文件名后执行复制;输入数字2,则提示用户输入要更名的文件或目录后执行更名操作;输入数字3和4分别执行删除和查找操作;输入数字5,则退出该菜单shell程序的执行。
VMWare6.0虚拟机和已经安装的Red Hat Linux 9.0系统;
三、实验内容与步骤
(1)编写一个shell脚本程序pingfang,计算1到10之间整数的平方值。
比如,在命令行下运行:./pingfang 5后屏幕上显示:25
(2)编写1个弹出式菜单的shell程序并实现其简单的菜单功能:
*******************************************************
* MENU *
Linux实验报告shell脚本编程
Linux实验报告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⽇10⽉11 12:37:00 CST 2009该命令⾏通知shell 到哪⾥寻找shell 脚本new_script,即您的当前⽬录“.”。
2、⽤Shell 语⾔编制⼀Shell 程序,该程序在⽤户输⼊年、⽉之后,⾃动打印数出该年该⽉的⽇历。
<参考程序>echo “Please input the month:”read monthecho “Please input the year:”read yearcal $month $year3、编程提⽰⽤户输⼊两个单词,并将其读⼊,然后⽐较这两个单词,如果两个单词相同则显⽰“Match”,并显⽰“End of program”,如果不同则显⽰“End of program”。
linux shell实验报告
linux shell实验报告《Linux Shell实验报告》摘要:本实验报告主要介绍了在Linux操作系统中使用Shell进行实验的过程和结果。
通过实验,我们深入了解了Shell的基本概念、常用命令和操作技巧,同时掌握了Shell脚本编写和执行的方法。
实验结果表明,Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性。
一、实验目的本实验旨在通过实际操作,加深对Linux Shell的理解和掌握,探索Shell在Linux系统中的应用和作用。
二、实验内容1. Shell的基本概念在实验中,我们首先了解了Shell的基本概念,包括Shell是什么、其作用和特点等内容。
通过实际操作,我们发现Shell是一种命令行解释器,能够接收用户输入的命令并将其转化为操作系统能够理解的指令,从而实现对系统资源的管理和控制。
2. 常用Shell命令在实验中,我们学习了一些常用的Shell命令,如cd、ls、mkdir、rm等,以及它们的用法和功能。
通过实际操作,我们发现这些命令能够帮助我们在Linux 系统中进行文件和目录的管理,实现对系统资源的快速访问和操作。
3. Shell脚本编写和执行在实验中,我们还学习了如何编写和执行Shell脚本。
通过实际操作,我们发现Shell脚本能够帮助我们实现对一系列命令的批量执行,从而提高工作效率和操作便利性。
三、实验结果通过实验,我们深入了解了Shell的基本概念、常用命令和操作技巧,同时掌握了Shell脚本编写和执行的方法。
实验结果表明,Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性。
四、结论本实验通过实际操作,加深了对Linux Shell的理解和掌握,探索了Shell在Linux系统中的应用和作用。
通过实验,我们发现Shell在Linux系统中具有重要的作用,能够提高工作效率和操作便利性,对于Linux系统的管理和维护具有重要的意义。
Linux实验四 shell编程(一)
实验四shell编程(一)(二) SHELL中的特殊字符1、通配符通常的通配符有三种:* 星号,它匹配任意字符的0次或多次出现。
但注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显示匹配。
?问号,它匹配任意一个字符。
应该注意:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。
!叹号,若它紧跟在一对方括号的左方括号[之后,则表示不在一对方括号中所列出的字符。
分析:字符 * 和?在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。
分析:除了file文件,其他都列出来2、引号在SHELL中引号分为三种:单引号、双引号、和倒引号。
(1)双引号由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其功能外,其余字符通常作为普通字符对待。
(2)单引号由单引号括起来的字符都作为普通字符出现。
(3)倒引号分析:单引号括起来的字符都作为普通字符出现;反引号包围起来的字符串被运行,date显示当前的日期。
(4)反斜线转义字符,若想在字符串中使用反斜线本身,则必须采用(\\)的形式,其中第一个反斜线作为转义字符,而把第二个反斜线变为普通字符。
(三)条件测试1.字符串比较= 比较两个字符串是否相等!= 比较两个字符串是否不相等-n 判断字符长度是否大于零-z 判断字符长度是否等于零分析:条件测试中,字符串比较有两种方法:1、test 字符操作符字符;2[ 字符操作符字符 ],用echo $?显示结果,条件成立时,测试结果返回值为0,否则为1。
上图中字符串 sss不等于ssss,返回值为12.数字比较-eq 比较两个数是否相等-ge 比较一个数是否大于或是等于另一个数-le 比较一个数是否大于或是等于另一个数-ne 比较两个数是否不等-gt 比较一个数是否大于另一个数-lt 比较一个数是否小于另一个数分析:数字比较有两种方法:1、test 整数操作符整数;2[ 整数操作符整数 ],用echo $?显示结果,条件成立时,测试结果返回值为0,否则为1。
linuxshell编程实验总结
linuxshell编程实验总结Linux Shell编程实验总结在Linux系统中,Shell编程是一种强大的工具,可以帮助用户进行自动化任务、脚本编写和系统管理。
通过学习和实践Shell编程,我深深地体会到了其在提高工作效率和简化任务流程方面的重要性。
在这篇文章中,我将总结我在Linux Shell编程实验中的经验和心得。
一、实验概述在这次Linux Shell编程实验中,我学习并应用了Shell脚本语言,掌握了基本的语法和命令,并通过实验来加深对Shell编程的理解和掌握。
实验的内容包括变量的定义和使用、条件语句的实现、循环结构的应用等。
二、变量的定义和使用在Shell编程中,变量的定义和使用是非常重要的一部分。
通过实验,我学会了如何使用“=”符号来给变量赋值,并可以在后续的命令中使用这个变量。
在实践中,我发现给变量加上$符号可以获取变量的值,并且可以在字符串中插入变量。
这在编写脚本时非常有用,可以将一些可变的部分定义为变量,提高程序的可读性和可维护性。
三、条件语句的实现条件语句在Shell编程中起到了重要的作用,可以根据不同的条件执行不同的命令。
通过实验,我掌握了Shell中常用的条件判断语句,如if语句和case语句。
在编写条件语句时,我注意到要使用适当的比较运算符(如“-eq”表示等于、“-ne”表示不等于等),并在语句块的结尾加上“fi”或“esac”来结束条件语句的定义。
四、循环结构的应用在实践中,我发现循环结构是Shell编程中非常重要的一部分,可以重复执行特定的任务。
通过实验,我掌握了两种常见的循环结构:for循环和while循环。
在编写循环结构时,我注意到要使用适当的循环控制语句,如“break”可以用于跳出循环,“continue”可以用于跳过当前循环中的剩余命令,继续下一次循环。
五、实验心得通过这次实验,我深刻认识到了Shell编程在自动化任务和脚本编写方面的重要性。
Shell编程既可以简化日常工作中的重复性任务,又可以提高工作效率和减少出错的可能性。
linuxshell编程实验总结
Linux Shell 编程实验总结1.引言本文档总结了在学习Li nu xS he ll编程过程中的实验经验和心得体会。
通过对L in ux Sh el l编程实验的实施和总结,我们能够更好地理解S h el l脚本的运行机制,掌握Sh el l脚本的基本语法和常用命令,提高编写高效、精确的Sh e ll脚本的能力。
2.实验一:S hell 脚本基础2.1实验目的本实验旨在帮助学员熟悉Sh el l脚本的基本语法和常用命令,掌握脚本的编写与执行方法。
2.2实验内容在本实验中,我们学习了如何编写具有特定功能的Sh el l脚本,如输出H el lo Wo rl d、计算两个数之和、判断文件是否存在等。
2.3实验心得通过本实验的实施,我对Sh el l脚本的基本语法有了更深入的理解。
在编写脚本的过程中,我发现使用变量、条件判断和循环结构可以极大地提高脚本的灵活性和实用性。
同时,我也加深了对常用命令的认识和掌握,如e ch o、re ad、i f-e ls e、fo r循环等。
这些基本的知识将为后续的实验和项目实践打下坚实的基础。
3.实验二:文件和目录操作3.1实验目的本实验旨在帮助学员了解Li nu x文件系统的基本操作,掌握S he ll脚本中与文件和目录相关的命令。
3.2实验内容在本实验中,我们学习了如何创建、复制、重命名和删除文件、目录,以及如何查询文件和目录的属性信息等。
3.3实验心得通过本实验的实施,我对Li nu x文件系统有了更深入的了解。
我学会了如何使用S he ll脚本快速处理文件和目录,并且能够根据需求编写相应的脚本来操作文件。
例如,通过使用fi n d命令来查找文件,使用g r ep命令来搜索文件内容等。
这些技能在日常工作中非常有用,能够提高工作效率和准确性。
4.实验三:文本处理4.1实验目的本实验旨在帮助学员掌握Sh el l脚本中处理文本的常用命令和技巧,能够快速有效地处理常见的文本数据。
linux实验报告总结-共10篇
∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。
2)掌握shell编程方法。
3)掌握dialog图形化编程方法。
二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。
要求记录所使用的命令及结果。
#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。
#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。
写出程序、命令和结果。
#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。
#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。
《Linux系统管理》Shell程序设计实验报告
《Linux系统管理》Shell程序设计实验报告(3)编写一个shell脚本,利用位置参数携带一个文件名,判断该文件在当前目录下是否存在且是一个普通文件。
(4)编写一个shell脚本,输入10-30之间的一个数,并判断它是否小于25。
(5)利用case条件语句编写一个shell脚本,提示用户输入一个字符,判断该字符是字母、数字或特殊字符。
(6)编写一个shell脚本,根据键盘可以循环输入学生成绩(百分制),并显示对应的成绩标准(及格和不及格),按“q”键退出,按其他键提示重新输入。
(7)编写一个shell脚本,利用for循环把当前目录下的所有指定的文件复制到指定的目录中,并显示复制后该目录内按文件大小排序的目录文件清单。
编写shell脚本,第一个位置参数为指定的目录,其后指定的位置参数为第一个位置参数指定目录下的文件,显示这些文件的内容。
(8)编写一个shell脚本,完成课本P189页第9题。
(9)编写一个shell脚本,完成课本P189页第10题。
三、实验过程:1.创建简单shell脚本(1)2.shell的输入输出重定向(1)(2)(3)(4)(5)(6)3.用shell语言编制shell程序(1)4.shell变量操作(1)(2)(3)(4)(5)(6)(7)5.shell程序控制结构(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)四、实验总结:(实验中遇到的问题及解决方法,心得体会等)本次实验了解和创建并使用脚本的步骤掌握shell的变量及特殊字符掌握shell的输入输出命令掌握常用shell程序逻辑结构语句。
会创建一个简单的列出目录和日期,会用shell语言编制shell 程序,掌握了一些复杂的命令。
通过这节课实验发现对于shell变量的类型使用,以及相关用户下的具体操作不够明确,Shell是Linux系统中的用户与系统交互的接口,可编程、作为命令解释器;Shell脚本的建立同普通文本文件建立相同,利用vi活cat命令进行操作;且shell变量有环境变量和用户自定义变量。
linux实验报告shell编程
linux实验报告shell编程1. 什么是Linux Shell编程?Linux Shell编程是一种在Linux操作系统上使用Shell脚本开发的编程语言。
Shell编程是通过编写一系列Shell脚本来完成特定任务或自动化操作的过程。
Shell是操作系统的一种命令行接口,用户可以通过Shell来执行各种命令和操作系统功能。
Shell脚本是一种文本文件,其中包含了一系列Shell命令,用于定义要执行的任务和操作。
2. 为什么要学习Linux Shell编程?学习Linux Shell编程有以下几个重要原因:2.1 自动化操作:Shell编程可以帮助我们自动执行各种任务和操作,提高工作效率。
通过编写脚本,可以自动化执行常见的操作,如文件处理、数据备份、软件安装等,节省大量时间和精力。
2.2 系统管理:Shell编程是系统管理的重要工具。
通过编写脚本,我们可以在Linux系统上进行系统配置、用户管理、进程管理等操作,简化管理流程并提高系统安全性。
2.3 学习编程思维:学习Shell编程可以培养编程思维和解决问题的能力。
编写脚本可以帮助我们理解问题,分析和解决问题,并培养逻辑思维和创造性思维。
3. Shell脚本的基本语法和结构3.1 Shebang:Shell脚本的第一行通常是一个Shebang(井号加叹号),用来指定要使用的Shell解释器。
3.2 注释:使用井号()来注释代码,用于解释代码的作用、用途和注记。
3.3 变量:可以使用变量来存储数据,并在脚本中引用。
变量以美元符号()开头,可以是数字、字符或字符串。
可以使用等号(=)进行赋值,如:var="Hello World"。
3.4 输入输出:使用echo命令将文本输出到终端,使用read命令读取用户输入。
3.5 条件语句:使用if-else语句判断条件并执行对应的代码块。
条件可以使用比较运算符(如大于、小于、等于)和逻辑运算符(如与、或、非)进行判断。
实验4 shell 程序设计 实验报告
实验4 shell 程序设计1.采用shell编程语言(类似C语言),完成(1)请用C语言编写程序,将1-100之间能被3或7整除的数显示出来.实验结果:student@linux-suse:~> ./homework1.sh3 6 7 9 12 14 15 18 21 24 2728 30 33 35 36 39 42 45 48 49 5154 56 57 60 63 66 69 70 72 75 7778 81 84 87 90 91 93 96 98 99end!程序代码:for ((i = 1; i <= 100; i++))doj=$[$i % 3]if test $j -eq 0thenecho -n $iecho -n " "elsej=$[$i % 7]if test $j -eq 0thenecho -n $iecho -n " "fifidoneecho "end!"(2)请用C语言编写程序,从键盘输入年号,屏幕显示是不是闰年,若是闰年则显不“YES!”否则显示“NO!”。
实验结果:student@linux-suse:~> ./homework2.sh清输入年份2012yes!student@linux-suse:~> ./homework2.sh清输入年份1995no!程序代码:echo "清输入年份read yeari=$[$year % 4]if test $i -eq 0thenecho "yes!"elsej=$[$year % 100]if test $j -eq 0thenecho "yes!"elsek=$[$year % 400]if test $k -eq 0thenecho "yes!"elseecho "no!"fififi(3)请用C语言编写程序,将从键盘录入的10个任意数,由低向高排序后显示。
linux shell 实验报告
linux shell 实验报告Linux Shell 实验报告一、引言Linux Shell 是一种命令行解释器,它允许用户与操作系统进行交互。
作为一个开源的操作系统,Linux 提供了多种 Shell,如 Bash、Zsh、Ksh 等,每种 Shell 都有其特点和用途。
本实验旨在通过实际操作,深入了解 Linux Shell 的使用和功能。
二、实验目的1. 熟悉 Linux Shell 的基本概念和操作;2. 掌握 Shell 的常用命令和参数;3. 理解 Shell 脚本的编写和执行过程。
三、实验环境本次实验使用的实验环境为 Ubuntu 20.04 LTS 操作系统,使用默认的 Bash Shell。
四、实验内容1. Shell 基本操作在 Linux 系统中,打开终端即可进入 Shell 环境。
Shell 提供了丰富的命令用于文件操作、系统管理等。
以下是一些常用的 Shell 命令示例:- ls:列出当前目录下的文件和子目录;- cd:切换当前工作目录;- mkdir:创建新目录;- rm:删除文件或目录;- cp:复制文件或目录;- mv:移动文件或目录。
2. Shell 变量和环境变量Shell 变量用于存储数据,可以通过赋值和引用来操作变量。
环境变量是一种特殊的 Shell 变量,用于存储系统环境的信息。
以下是一些常用的变量和环境变量示例:- 变量赋值:name="John";- 变量引用:echo $name;- 环境变量:$HOME、$PATH、$USER。
3. Shell 脚本编写与执行Shell 脚本是一种批处理文件,由一系列命令组成,可以实现自动化操作。
以下是一个简单的 Shell 脚本示例:```shell#!/bin/bashname="John"echo "Hello, $name!"```将上述脚本保存为 `hello.sh`,通过 `chmod +x hello.sh` 命令给予执行权限,然后通过 `./hello.sh` 执行脚本。
实验4 Linux Shell程序设计
cd $1
}
do_date
setup
chgdir
4 paramtest
#!/bin/bash
echo filename:$0
echo arguments:$*
echo number arg:$#
echo arg2:$2
shift
echo number arg:$#
echo arg2:$2
set hello,everone
实验4 Linux ShБайду номын сангаасll程序设计
1、实验目的
(1)掌握Linux shell程序运行方法
(2)掌握Linux Shell程序基本语法
(3)了解Linux环境变量
(3)编写简单Linux shell程序
2、实验内容
(1)查看/etc/.profile文件:相当于DOS下autoexe.bat
(2)通配符“*”、“?”、“[]”的使用
$ls [a-c]*和$ls [a,m,t]*命令
(3)重定向和管道的使用
ls | more
cat > test.txt
(4)变量
$lookup=/usr/mydir
$echo $lookup
$export lookup:让进程使用
(5)编辑并运行以下程序(shell程序控制结构)
1 fortest
(2)详细记录程序调试及运行结果
4、实验心得与总结
内核在内充中是受保护的块,因烤瓷我们必须要通过“shell”将我们输入的命令与kernel通信,好让kernel可以控制硬件来正确无误的工作。系统合法的shell均卸载/etc/shells文件中,用户默认登陆取得的shell记录于/etc/passwd的最后一个字段。Set可以查看目前bash环境下的所有变量。
Linux实验报告(实验四)shell编程实验
Linux实验报告(实验四)shell编程实验实验四 shell编程实验(二)班级:姓名:学号:上机时间:年月日任课教师:实验教师:实验成绩:一、实验目的综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。
二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容1. 编写一个脚本,求斐波那契数列的前10项及总和。
num1=1num2=1echo -n “$num1+$num2”sum=2for((i=1;i<=8;i++))dotmp=$(expr $num1 + $num2)echo -n “+$tmp”((num1=num2))((num2=tmp))sum=$(expr $sum + $tmp)doneecho “=$sum”2.编写一个脚本,求一个数的逆序。
echo -n please input num:read numecho -n The num iswhile [ $num -gt 0 ]dosd=$(($num % 10))echo -n "$sd"num=$(($num/10))doneecho3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)mkdir -m 754 /home/userdatai=1temp=/home/userdata/userwhile[ $i -le 5 ]domkdir -m 754 $temp$ilet”i=i+1”#done4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。
LINUXshell程序编程试验报告
LINUX实验报告专业: 班级: 学号: 姓名: 报告时间:实验一Shell编程一 .实验名称:考勤模拟shell程序设计二 .实验目的:理解Shell程序的设计方法;熟悉Shell程序的编辑、运行、调试方法与过程。
三 .实验内容:考勤模拟Shell程序设计用shell设计一个模拟考勤程序,实现如下功能选择界面:1 :上班签到2:下班签出3:缺勤信息查阅考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在userinfo.dat中。
如果是上班签到,记录签到信息,如果签到时间大于上午8时,则提示用户迟到,并记录该迟到信息到check.dat中。
如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到check.dat。
如果用户选择确信信息查询,则将check.dat中对应的用户迟到早退的信息查询出来并显示。
用户选择功能执行完,Shell程序继续回到功能选择界面等待下一个用户进行操作。
四.实验要求:1、掌握Shell程序的编辑、运行、调试方法2、完成实验内容要求是现的功能3、撰写实验报告五.试验运行代码:#缺勤信息查阅3)echa ”请输入您的名字:11read nameecho ”请输入您的密码:11read password#用户密码脸证if test -r /hoire/user/use rinfo.dat #如果usm「inT。
.dat文件存在且可读then while read fname fpassworddoif test "tfname" = "tname"thenif test "$password"="tpassword"thenbreakdone < /honiH/uGHr/us巳「inf。
j日telseecho System E「「Q「;use「info.ddt does not exist!if test "^fname" != "tname"thenecho ”不存在该用户”elif test 11$fpassword'!= '^password11thenecho ”密码不正确”elseecho "您的记录:"echo 11 -------------- 11cat -b /home/user/check.dat | grep $nameecho 11 -------------- 11fi; i#非法输入*} echo ”清输入含法的选欣I " esaclone#!/bin/shelLwhile true; do#屏幕显示提示信息echo ""echo ” ——欢迎使用本系统——"echo ”L上班签到“echo ”2、下班签出“echo ”3、考勤信息查阅”echo ” ----------------------------------- ”echo ""echo ”请输入您的选原:”#读入选国read choicecase $choice in#上班签到1)echo ”请输人您的名字:" read nameecho ”请输入您的密码:" read password#用户密码这证if test -r /home/user/use rinfo.dat #如果115H「inf。
linux编程SHELL编程实验报告
Linux编程课程设计报告题目: Linux Shell编程专业学号姓名指导教师日期题目:Linux Shell编程一、设计目的和任务实验目的:1.熟悉Shell环境和Shell的执行2.熟悉Shell的基本语法和语句3.了解Shell程序的调试方法实验内容:1.编写Shell程序2.调试和执行Shell程序二、设计原理Linux是一种开放源码、能够免费使用及自由传播的类似于UNIX操作系统。
它可运行于各种平台之上。
因为它不但具有UNIX系统的良好性能(如稳定性、安全性),同由于其具有开源和免费的特点,也越来越广泛地应用于各种嵌入式系统中。
Shell是用户和Linux操作系统内核程序间的一个借口。
Shell既是命令解释器,有事一种编程语言。
作为命令解释器,Shell为用户使用Linux操作系统提供丰富的工具界面。
若用户输入命令,Shell负责解释执行该命令并向用户返回结果。
作为编程语言,它利用自身的语言结构将工具命令组合起来提供更复杂的功能。
三、实验环境和总体设计一台2.安装虚拟机版的Linux操作系统四、详细设计步骤1.打开vmware软件,启动Linux系统2.用root用户名和密码登入系统中3.将某目录下面所有的文件名后面加上所有者的名字,如的所有者为owner,修改后为a[owner].txt文件。
基本要求:①使用方法为usage:程序名称目录名称若没有“目录名称”参数,则修改当前目录下文件名称②对目录中的子目录不做变化。
③ 给出实验结果。
五、结果测试与分析1. 进入root模式创建2618文件夹和文件2.编写shell程序3.执行shell程序,遇到权限问题,修改权限,并列出目录下所有文件4.修改权限后再次执行shell程序成功六、存在的问题编写程序时路径出现错误,导致找不到该文件修改前:修改后七、总结。
linux操作系统实验报告-shell简单编程
•3)编写一个Shell程序,使得程序在系统时间分钟值为5的倍数的时,自动备份此目录下的.png文件到backup中(选做)
源代码:
#!/bin/bash
#Program: User can backup the png files every 5 minutes.
#History:2012/11/04 First release
echo "$(($date_dif+1)) day(s) later to your expected date."
elif [ "$date_dif" -lt "0" ];then
echo "Your days is $((-1*$date_dif)) days before."
else
echo "Your expected day is today."
•3)编写一个Shell程序,使得程序在系统时间分钟值为5的倍数的时,自动备份此目录下的.png文件到backup中(选做)
二、实验设计(包括:设计思路,数据结构,程序流程图,关键代码说明)
使用linux虚拟机完成实验要求。
三、实验结果(包括:运行结果,结果分析)
•1)利用Shell编程,实现时间密码的验证
fi
四、实验总结(包括:实验效果分析,心得体会,遗留问题)
很多知识。
教师评语
成绩:教师签名:年月日
注:此表各栏可延伸。
echo "Now is the time $Time"
read -p "Enter the date:" date1
date_test='echo $date1 | grep '[0-9]\{8\}''
linux实习四shell编程
linux实习四shell编程实习四shell编程一、实习内容1. 练习书中的有关的例题。
在ssh中练习调试本章的例题,学习例题shell的编写思想和方法,这里一定要加大调试强度,理解例题中每行代码的具体意思,这样才能比较轻松的完成下面的实习任务。
相关练习在我的~目录和sh目录下可以查到。
2. 完成教材P140的4.4、4.8 。
4.4将主提示符改为你的目录名,并予以输出PS1="/home/09207071>"4.8分析下列shell脚本的功能:count=$# !将命令行参数的个数传给countcmd=echo !将echo赋值给cmdwhile [ $count -gt 0 ] !判断count的值是否大于0,大于0进入循环docmd="$cmd \$$count" !将位置为$count的参数递归赋值给cmdcount=`exprt $count -1` !count值减1doneeval $cmd 打印cmd综上,这个shell脚本的功能是:按反向打印出命令行给出的参数3.分析如下脚本功能(注释每条语句,并描述脚本功能):usrname=$1 !将命令行的第一个参数赋值给usrname[ -z $usrname ]&&read -p “Please Input Username:”username !如果usrname的值为空read读取用户输入的usernamew -h|grep -q “^$username”|| { echo $username do not login;exit 1;} 不显示标题,不显示的搜索首列username,如果没有匹配成功,则打印该用户不存在提示;返回echo -n Input Message to Send: !匹配成功,不换行打印“Input Message to Send:”read msg!读取msgif echo $msg|write $username 2>/dev/null !给$username用户发送$msg中的内容,并将错误信息抛去then echo Send Message successfully!! !显示发送成功else echo Send Message fail!! !否则显示failfi !结束if4.编写一个脚本,每隔5分钟检查一下当前用户是否有新的邮件,若有则提示用户。
Linux实验四
实验四shell及其程序设计一、实验目的1.理解shell操作环境2.掌握shell程序编写方法二、实验内容1.练习、理解下面命令Alias答:别名命令,显示所有的别名信息.alias ld='ls -ld 。
’答:使用别名命令,添加别名信息。
history 20答:显示最近输入系统的20条命令!!执行上一次输入的命令var1=”abcd1234"答:将var1变量赋值echo ${var1:3:4}答:显示var1[3]—var1[3+4]的字符echo $HOME答:显示当前用户主目录的路径信息var2=$HOME答:将当前用户主目录的路径信息赋给var2变量echo "我的主目录是$var2”答:双引号下可以进行字符替换,将var2变量替换为当前用户主目录的信息。
set –o答:显示系统环境各配置的状态ls *sh答:显示当前目录下以“sh"结尾的文件名称arr1=(long live chair mao)答:给arr1数组变量赋值echo ${arr1[1]}答:显示数组arr1中下标为1的字符串arr2=(`date`)答:将date命令显示的结果赋给数组变量arr2echo ${arr2[3]}答:显示数组变量arr2中下标为3的字符串[ $? -eq 0 ] || echo答:"上面命令执行失败。
”判断上条命令是否操作失败,若是,则显示“上面命令执行失败"{ date;pwd;tty;stty; }答:分步执行四条命令:显示当前日期信息;显示当前操作的目录;显示当前终端设备的名称;显示当前终端的设置;2.编写shell程序1)文件名adds。
sh,实现多个数值相加;(提示:多个数值通过参数提供)#!/bin/bash#多个数相加s=0for i in $*dolet s=s+idoneecho $sexit 02)文件名cleardirs。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 shell编程实验(二)
班级:姓名:学号:上机时间:年月日
任课教师:实验教师:实验成绩:
一、实验目的
综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。
二、实验注意事项
实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。
要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。
以后所有工作都要在自己的目录内进行。
建议以后的实验都在同台计算机上做,这样可以保持连续性。
三、实验内容
1. 编写一个脚本,求斐波那契数列的前10项及总和。
num1=1
num2=1
echo -n “$num1+$num2”
sum=2
for((i=1;i<=8;i++))
do
tmp=$(expr $num1 + $num2)
echo -n “+$tmp”
((num1=num2))
((num2=tmp))
sum=$(expr $sum + $tmp)
done
echo “=$sum”
2.编写一个脚本,求一个数的逆序。
echo -n please input num:
read num
echo -n The num is
while [ $num -gt 0 ]
do
sd=$(($num % 10))
echo -n "$sd"
num=$(($num/10))
done
echo
3.设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)
mkdir -m 754 /home/userdata
i=1
temp=/home/userdata/user
while[ $i -le 5 ]
do
mkdir -m 754 $temp$i
let”i=i+1”#
done
4.用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到/home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。
mkdir -m 777 /home/test
echo “Input file name:”
read FILENAME
if [ -f “$FILENAME” ]
then
cp $FILENAME /home/test
ls /home/test
cd test
rm $FILENAME
cd .
ls
else
echo”The FILENAME is not a regular file!”
fi
5.编程实现简单计算器。
要求用户输入一个表达式并输入结果,程序会判断用户输入的结果是否正确,并给出提示。
直到用户输入‘q’时,才退出执行。
参考程序:
#!/bin/bash
#fileName:first
#note:This is the first title
#function:input an expretion and the answer, I will tell you right or wrong # You can try it as many times as you like.
echo Hello! @_@
echo Welcom to the calculate testing!
echo You can input an expretion such as 2*2 or 3+1, and input the answer echo I will tell you whether you are right or wrong.
echo You can input 'q' to exit.
echo "Now let's begin!"
number1=0;
while [ "$number1" != "q" ]
do
echo Input the first number:
read number1
echo Input the operator type:
read type
echo Input the second number:
read number2
echo Input the answer:
read yourAnswer
case $type in
+) myAnswer=`expr $number1 + $number2`;;
-) myAnswer=`expr $number1 - $number2`;;
\*)myAnswer=`expr $number1 \* $number2`;;
/)
if [ $number2 -eq 0 ]
then
echo "Sorry! :-("
echo "0 cannot be the divisor"
continue
else
myAnswer=`expr $number1 / $number2`
fi
;;
*) echo Error!;;
esac
if [ $myAnswer -eq $yourAnswer ]
then
echo ":-)" Congratulations!
echo Your are right!
echo Input 'q' to exit or try again!
else
echo ":-(" Sorry!
echo You are wrong!
echo "The right answer is:"
echo "$number1 $type $number2 = $myAnswer"
echo Input 'q' to exit or try again!
fi
# echo Input the first number:
# read number1
done
要求:请同学仔细分析该程序,理解其中的语句及用法,写出程序分析及总结。
总结:
四、实验报告要求
1.列出调试通过程序的清单,并加注释。
2. 写出程序运行步骤及结果。
3.总结上机调试过程中所遇到的问题和解决方法及感想。