实验3_shell程序设计

合集下载

实验三实现简单的Shell程序

实验三实现简单的Shell程序
在Linux中,每个打开的文件都有一个小的非负整数与之 对应,称为文件描述符。例如: 0: stdin(标准输入) 1: stdout(标准输出) 2: stderr(标准报错输出) 这三个“设备文件”的文件描述符,也称为标准文件描 述符。内核根据文件描述符执行文件操作(读写文件 等)。
8/36
信号与进程同步的信号量机制概念不同,理解为一 种传递消息的进程通信类型。
11/36
3.2 基础知识 - 进程通信2
管道
管道允许一条命令的标准输出作为一条命令的标准输 入,允许同一个系统上的两个相关的进程进行通信 (典型情形是父子进程),而且进程的通信是单向的。 管道的语义如图:
12/36
为特定的形式传递给系统调用execve(); c) 由终端进程调用fork()函数建立一个子进程; d) 终端进程本身调用wait4()挂起当前进程来等待子进程完成(后
台命令除外)。子进程通过调用execve( )运行,根据命令名到 目录中查找有关文件(命令解释程序构成的文件),将它调入 内存,执行这个程序(解释命令); e) 如果是后台命令符号(以&结尾),不用调用wait4()进行等待 而是直接提示用户输入下一条命令,转到a),否则调用wait4( ) 等待子进程完成。
3.2 基础知识 – 接口介绍6
6. 建立管道 int pipe(int fildes[2])
相关函数 mkfifo,popen,read,write,fork 接口功能:创建一个管道,把管道的读和写文件描述符放到数
组fildes中, filedes[0]为管道里的读取端,filedes[1]则为管道 的写入端。 返回值 : 若成功则返回零,否则返回-1,错误原因存于errno中。

shell 脚本实验

shell 脚本实验

湖北汽车工业学院实验报告实验三 shell 脚本实验一、实验目的1.掌握bash的基本语法。

2.掌握bash的建立和执行方式。

3.熟悉shell脚本编程。

二、实验内容1.编写Shell脚本文件,该文件的功能:从键盘输入年月,然后自动显示该年份下该月的日历,然后再显示系统当前的日期和时间。

要求用3种不同方式执行该脚本。

(3分)参考程序:$vi mycal(进入vi环境输入下列脚本程序)echo “Please input year:”read year #从键盘读入年份给year变量echo “Please input month:”read month #从键盘读入月份给month变量cal $month $yeardate:wq!回车(保存文件并退出vi)执行脚本方法:方法一:输入定向到shell脚本(格式:$bash<脚本名)$bash<mycal结果:不能执行脚本。

原因:用输入重定向方式让shell从给定文件中读入命令行,并进行相应处理。

这种方式不能从命令行读入参数,包括程序中有从键盘读入参数。

方法二:以脚本名作为bash参数(格式:$bash 脚本名 [参数])$bash mycal 回车显示:方法三:将shell脚本的权限设置为可执行,然后在提示符下直接执行。

(用chmod命令)$chmod a+x mycal #把mycal设置为对所有用户都有“执行”权限。

$PATH=$PATH:. #将脚本所在的目录添加到命令搜索路径(PATH)中。

$mycal #输入脚本名直接执行该脚本显示:2.编写Shell脚本文件,要求从命令行接收数值参数,并计算这些参数的和。

(1分)参考程序:$vi OSsy3_3(进入vi环境输入下列脚本程序)x=0 #累加器变量清零for y in $* #变量依次取位置参数的值,然后执行循环体中的命令表,至所有位置参数取完为止。

dox=`expr $x + $y` #计算表达式x+y,并把计算结果赋给x。

实验三 shell编程

实验三 shell编程

实验三 shell编程一、实验名称:shell编程二、实验学时:2学时三、实验目的掌握shell脚本的多种常用的执行方式;熟悉shell编程常用语法格式和变量的使用方法;掌握shell编程中常用的循环语句、分支语句、条件语句的使用方法。

四、实验步骤1.利用gedit编辑器,在当前用户的家目录下建立一个简单的脚本文件file.sh,其中包括date,cal,pwd,ls 等常用命令,然后以不同方式执行该脚本。

(1)采用输入定向到shell脚本的方法执行:输入命令 bash<file.sh(2)不给shell脚本文件可执行权限a)source FileName作用:在当前bash环境下读取并执行FileName中的命令。

该filename文件可以无"执行权限"注:该命令通常用命令“.”来替代。

如:source bash_profile . bash_profile两者等效。

source(或点)命令通常用于重新执行刚修改的初始化文档。

source命令(从 C Shell 而来)是bash shell的内置命令。

点命令(点符号),从Bourne Shell而来,就是顺序的执行文件里的命令而已。

b)sh和bash命令用法: shFileName bash FileName作用:在当前相应的bash环境下新建一个子shell读取并执行FileName中的命令。

该filename文件可以无"执行权限" 。

注:两者在执行文件时的不同,是分别用自己的shell来跑文件。

sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强“-x”选项的输出信息等。

(3)修改shell脚本的权限为可执行(chmod +x file.sh)a)./的命令用法:./FileName作用:打开一个子shell来读取并执行FileName中命令。

实验三vi及Shell程序设计

实验三vi及Shell程序设计

实验三vi及Shell程序设计实验三 vi及Shell程序设计⼀、实验任务第⼀部分 vi1.请在/tmp⽬录下建⽴⼀个名为vitest的⽬录;(请书写命令)[root@localhost /]# mkdir /temp/vistest2.进⼊vitest⽬录;[root@localhost /]# cd /tmp/vistest3.将/etc/man.config复制到本⽬录下;[root@localhost vistest]# cp /etc/man.config /tmp/vistest4.使⽤vi开启本⽬录下的man.config⽂件;[root@localhost vistest]# vi man.config5.在vi中设定⾏号;:set number6.移动到第58⾏,向右移动40个字符,请问看到什么⽬录?/dir/bin/foo7.移到第1⾏,并向下搜寻bzip2字符串,请问它在第⼏⾏?第118⾏8.将50到100⾏之间的man改为MAN,如何实现?:50,100s/man/MAN/gc9.修改完后,想全部复原,怎么样实现?:q!或者⼀直按u10.复制65到73⾏这9⾏的内容,并粘贴到最后⼀⾏之后;先按“65G”使光标移到65⾏,再按“9yy”,然后按“G”回到再回到最后⼀⾏,按“P”,就可以完成操作。

11.删除21到42⾏之间的开头为#符号的批注数据,如何实现?“21G”之后,再⽤“22dd”即可删除22⾏12.将这个⽂件另存为man.test.config⽂件;13.转到第27⾏,并删除15个字符,结果出现的第⼀个单词是什么?14.在第⼀⾏新增⼀⾏,输⼊I am a student,怎样实现?15.保存后退出。

第⼆部分 Shell程序设计1.请编写⼀个Shell脚本,当执⾏该脚本的时候,该脚本可以显⽰:1)你⽬前的⾝份(⽤USER)2)你⽬前所在的⽬录(⽤PWD)2. 请编写⼀个Shell脚本,该程序可以计算“你还有多少天可以过⽣⽇”。

实验三shell程序设计shell基础

实验三shell程序设计shell基础

实验三shell程序设计: shell基础实验目的:进一步巩固shell程序设计语言基本语法,加深对所学知识的理解。

实验要求1. 四种变量的使用2. 配置环境变量3. 元字符和正则表达式4. 引号1. 本地变量$ var1="hello Linux" //定义本地变量var1$ read var2 //定义本地变量vae2$ echo $var1 $var2 //显示本地变量的值2. 环境变量$ env //显示系统的环境变量$ echo $PATH //显示搜索路径变量PATH$ MYNAME="zhangs" //定义本地变量MYNAME$ export MYNAME //将本地变量MYNAME输出为环境变量下面观察环境变量与本地变量作用范围的区别$ echo $var1 $MYNAME //显示本地变量和环境变量$ bash //创建子进程bash$ echo $var1 $MYNAME //显示本地变量和环境变量$ exit //退出子进程bash$ echo $var1 $MYNAME通过修改环境变量PS1可修改提示符$ PS1=$ //将提示符变为$3. 位置变量使用编辑器vi编辑下列shell脚本#!/bin/bashecho $0 $1 $2 $3将上述两行脚本保存为文件locat.sh$ chmod +x locat.sh //增加执行权限$ ./locat.sh you me he观察显示结果,理解位置变量的定义4. 预定义变量用编辑器vi编辑以下shell脚本#!/bin/bashecho $#echo $*将上述三行保存为文件predef.sh$chmod +x predef.sh //增加执行权限$ ./predef.sh Linux Unix Windows观察运行结果,理解预定义变量的含义5. 配置环境变量可通过用户主目录下的配置文件,改变系统的启动参数,例如:可通过修改.bash_profile修改环境变量PATH,具体操作如下:$ cd ~ //进入用户的主目录$ vi .bash_profile //编辑配置文件若文件中有下列行:PATH= $PATH;$HOME/bin则在PATH路径中增加当前路径,修改后外:PATH= $PATH:$HOME/bin:.$ exit //退出用该用户的账号重新登录系统执行当前目录下的locat.sh脚本无需制定当前路径,例如:$ locat.sh myname is zhangs6.元字符与正则表达式$ cd ~ //进入用户主目录# ls -l / >list //以详细方式列出根目录下的所有文件信息,重定向至list文件$ grep ^d list // 查询所有目录$ ls *.sh //列出所有后缀名为.sh的shell脚本文件6. 反引号、单引号和双引号$ abc="pwd"$ echo '$abc' //只显示单引号内的字符串$ echo "$abc" //显示变量的值$ echo `"$abc"` //"和`的综合使用$ echo "`pwd`" //为"内的`作出解释$ echo *$ echo "*" //屏蔽元字符的特定含义$ echo ‘*’//观察显示结果$ echo \* //观察显示结果。

操作系统-shell程序设计

操作系统-shell程序设计
if [ ! -d $DIRECTORY ]
then
echo "Sorry,$DIRECTORY is not a directory!"
exit 1
fi
cd $DIRECTORY
}
clear
ANS=Y
while [ $ANS = Y -o $ANS = y ]
do
echo "==========================="
echo "####################################"
echo "# 1:ADD A RECORD #"
echo "# 2:SEARCH RECORD #"
echo "# 3:DELETE A RECORD #"
echo "# 4:SHOW ALL RECORD #"
4) display;;
Q|q) quit;;
*) echo "Invalid Choice!";
sleep 2;
clear;;
esac
done
七、实验结果
任务一
解压:
任务三
添加功能
查询功能
未找到姓名时有
删除功能
删除不存在的数据时有:
删除成功:
显示所有数据:
八、实验总结
通过这个试验,我初步了解了shell的编程特点,也基本掌握了shell程序设计的一些基础性的知识,同时对shell程序的运行方式以及程序控制流程有了进一步的认识,基本掌握了shell程序的编写方法以及一些使用技巧
if [ ! -f ./record ] ; then

实验三shell相关实验

实验三shell相关实验

实验三shell相关实验一、实验目的学习和掌握编写简单的hell程序。

二、实验内容和步骤(一)阅读程序说明是什么功能:#/bin/bahtypeetfirtecondread-p\read-p\reult=$[$firt+$econd]echo\e某it0(二)程序设计1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到/dev目录下。

2.设计一个hell程序,添加一个新组为cla1,然后添加属于这个组的30个用户,用户名的形式为td某某,其中某某从01到30。

3.编写hell程序,实现自动删除50个账号的功能。

账号名为tud1至tud50。

4.比较3个数的大小。

5.设计一个Shell程序,在/uerdata目录下建立50个目录,即uer1~uer50,并设置每个目录的权限,其中其他用户的权限为:读;文件所者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

6.写个从用户接受文件名的hell脚本。

如果文件是普通文件,则显示以下信息:————ianordinaryfile-diplay如果答案是‘y’,而且文件是有可读权限的,显示文件,不然,则显示如下信息并退出:orry_______hanoreadpermiion.如果参数是个目录,在用户确认了权限之后显示那个目录里的文件名。

如果参数不是普通或者目录文件,显示出错信息并退出。

7.写个从用户接受一个文件名和一个目录名的hell脚本,脚本要检查文件和目录是否存在。

如果存在,文件将被拷贝到指定的目录,如果文件或者目录不存在,显示错误信息。

8.写出hell脚本显示下面的菜单Pretoe某it如果选择2,脚本要接受一个命令名作为输入数据。

如果没有数据输入,脚本要显示错误信息并退出,否则,脚本调用手册并把命令作为参数传递过去。

9.创建一个名叫DELSTAR的hell脚本,它接受输入并查看输入的内容是否是一个目录,并可读写。

如果是,那么目录里所有的普通文件将被一个一个被列出,对每个可写的普通文件,用户会被询问是否要删除文件,如果是,那么文件将被删除,不然的话查看下一个文件。

shell编程实验

shell编程实验

实验三 shell编程实验(一上机时间:任课教师:实验教师:实验成绩:一、实验目的1.了解shell的作用和主要分类。

2.掌握bash的建立和执行方式。

3.掌握bash的基本语法。

4.综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。

二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。

要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。

以后所有工作都要在自己的目录内进行。

建议以后的实验都在同台计算机上做,这样可以保持连续性。

三、实验内容1.利用vi 建立一个脚本文件,该文件在用户输入年、月之后,自动打印数出该年该月的日历。

然后以3种不同方式执行该脚本,如有不能执行情况,请说明原因。

yan@ubuntu:~$ cat >timeecho "please inpute the mounth"read monthecho "please inpute the year"read yearcal $month $year2.编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match ”,并显示“End of program ”,如果不同则显示“End of program ”。

yan@ubuntu:~$ cat >bijiaoecho -n "please inpute word1:"read word1echo -n "please inpute word2:"read word2if test "$word1" = "$word2"thenecho "Match"fiecho "End of program"3.修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match ”,不同则显示“Not match ”,最后显示“End of program ”。

实验三-shell脚本程序设计

实验三-shell脚本程序设计

实验报告课程名称Linux系统实践实验项目LINUX SHELL脚本程序设计实验仪器PC系别计算机学院专业网络工程班级/学号网1702/**********学生姓名孟启贤实验日期 4.15成绩指导教师李艳平实验三LINUX SHELL脚本程序设计一、实验目的:通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。

对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。

通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。

二、实验环境操作系统:任何Unix/Linux或windows 系列应用系统:SHELL 或windows环境下的cygwin模拟系统三、实验要求1、做好实验预习,通过查找资料、阅读系统提供的帮助文件等多种渠道了解本实验所使用的SHELL命令及各种技术方法。

充分利用所学知识,预设多种实现思路。

2、写出实验报告,内容是:⑴简要说明实验的目的、任务与设备。

⑵写出实验步骤、实现的技术手段及关键代码。

⑶在给定实验数据的基础上给出相应的输出结果。

⑷总结实验中遇到的问题及解决方法。

⑸写出实验心得与收获。

四、实验内容本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术。

内容如下:⑴创建以下菜单程序:USER: **** HOST: ******** DATE: **/**/20**A: 创建子目录并测试B: 文件查找C: 文件权限测试及统计D: 文件创建与复制E: 文件内容修改Q: 退出系统———————————————————————————————A:在用户家目录下创建名字为你学号后四位数字的子目录,其存取权限为(drwxr-xr-x)。

测试确认目录存在,输出提示。

B:在/dev目录下查找由sd开头且文件名由3个字符组成的文件,找到后用file命令显示其文件类型;显示当前系统中所有变量和Shell函数。

实验3 Shell编程-2014

实验3 Shell编程-2014

实验三Shell编程班级:计本112 姓名:邵绪宝学号:201106080226三、实验操作1、通配符的使用1)进入/etc目录并且将此处所有文件以列表显示» $ cd /etc» $ ls2)要求用带有通配符的ls命令来显示文件名,实现:-以conf结束-以d 或D开始-在文件名的第五个位置包括一个o-包含单词tab-以数字结尾-不以数字结尾» $ ls -d *conf» $ ls -d [dD]*» $ ls -d ????o*» $ ls -d *[tT][aA][bB]*» $ ls -d *[0-9]» $ ls -d *[!0-9]3)如果你执行命令ls -d ?[!y]*[e-f]将会发生什么情况?能与之匹配的最短文件名是什么?执行这些命令来验证你的答案。

» $ ls -d ?[!y]*[e-f]2、重定向1)使用cat命令和指令来创建一个包含几行文本名为junk的文件。

$ cat > junkType some lines of information...<Ctrl-d>$ cat junk» $ cat > junk» 4»<Ctrl-d>» $ cat junk2)使用重定向junk文件中追加几行文本。

然后查看junk文件的内容并且检查你刚刚所创建的文本是否都存在。

$ cat >> junkType some lines of information...<Ctrl-d>$ cat junk» $ cat >> junk» 5»<Ctrl-d>» $ cat junk3、管道1)统计你当前目录所有文件的数目。

使用管道,而不是手动地统计所有文件2)ls > tempfile ; wc -l tempfile是否和你刚刚使用的管道功能相同?为什么或者为什么不?3)将多个用户文件联合为一个大文件。

实验三 Shell脚本编程实验

实验三  Shell脚本编程实验

实验三 Shell脚本编程实验一、实验目的1.掌握Shell编程的基本方法2.了解Shell脚本的基础知识二、实验要求1.完成一个简单Shell程序的编写和执行过程;2.设计一个Shell程序,显示欢迎界面;3.使用until语句创建一个输入exit退出的Shell程序。

三、实验准备Shell是一个命令语言解释器,它拥有自己内建的Shell命令集,Shell也能被系统中其他应用程序调用。

用户在提示符下输入的命令都由Shell解释后传给Linux核心。

Shell的另一个重要特性是它自身就是一个解释型的程序设计语言。

Shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。

Shell 编程语言简单易学,任何在提示符中能键入的命令都能放到一个执行的Shell程序中。

Shell脚本的建立和执行Shell程序可以存放在文件中,这种被Shell解释执行的命令文件称为Shell脚本(Shellscript),也称做Shell文件或者Shell过程。

Shell脚本可以包含任意从键盘输入的UNIX命令。

1)·.Shell脚本的建立建立Shell脚本的方法同建立普通文本文件的方法相同,利用编辑器(如vi)进行程序录入和编辑加工。

例如,要建立一个名为ex1的Shell的脚本,可以在提示符后打入命令:$ vi ex12). 执行Shell脚本的方式执行Shell脚本的方式基本上有三种:(1)输入定向到Shell这种方式是用输入重定向方式让Shell从给定文件中读入命令行并进行相应处理。

其一般形式是:$ sh < 脚本名例如,$ sh < ex1(2)以脚本名作为Shell参数。

其一般形式是:$ sh 脚本名[参数] 例如,$ sh ex2 /usr/mengqc/usr/liuzhy(3)将Shell脚本改为有执行权限的文件,由正文编辑器(如vi)建立的Shell脚本,用户通常是不能直接执行的,需要利用命令chmod将它改为有执行权限。

Linux 实验三:SHELL编程

Linux   实验三:SHELL编程

《Unix 操作系统》实验报告内蒙古工业大学信息工程学院计算机系2016年6月题目 实验三:SHELL 编程(二) 专业 网络工程 班级 学号 姓名 指导教师实验三SHELL脚本编程(二)一、实验目的通过上机实习,能够编写简单的Shell脚本,熟悉Shell脚本的循环语句和函数。

二、实验题目实验三SHELL编程(二)三、实验要求1、在Linux环境下,利用vi或gedit编写SHELL脚本程序。

(shi1.sh和shi2.sh)2、程序shi1.sh要求:(1)要求用循环结构(2)功能运行文件时,显示文件后所带的参数。

例如所编辑的文件名为shi3.sh,运行该文件:Shi1.sh She He It显示:SheHeIt3、程序shi2.sh要求:(1)要求用函数实现相应功能(2)功能运行文件时,指定备份当前目录下的目录或文件。

例如:当前目录下有目录test_dir 和文件file1.h,执行备份功能的脚本文件beifeng.sh./ beifeng.sh test_dir file1.h显示:Backup Process Begins2015-05-20-16-35-55 SUCCESS in backup file/directory(test_dir)2015-05-20-16-35-55 SUCCESS in backup file/directory(file1.h)Backup Process Ends同时将显示的信息保存到日志文件里,日志文件的名称由备份时的时间确定,如2015-05-20-16-35-55.log日志文件和备份文件存放在定义好的备份目录里。

4、工具:Linux Shell、vi、gedit5、实验时间:4学时6、打印实验报告四、实验结果1、分别写出程序shi1.sh和shi2.sh。

3、写出程序执行时出现的问题及解决的方法。

4、硬拷贝实验过程粘贴到实验报告,并标注相应完成的是什么任务。

嵌入式系统原理与应用实验报告(实验三 shell脚本编程实验)

嵌入式系统原理与应用实验报告(实验三  shell脚本编程实验)

实验三shell脚本编程实验
一.实验目的和要求
1掌握shell编程的基本方法
2了解shell脚本的基本知识
二.实验环境
Windows2003的vmware的Redhat。

三.实验过程
设计一个shell程序,添加一个新组class1,然后添加属于这个组的30个用户。

目标:编写shell脚本文件,以文件名addusers保存。

通过改变文件的权限,是addusers 能够顺利执行。

实验步骤:
1)切换到/work文件夹
2)建一个文件夹“shell”
3)进入shell文件夹
4)vi编辑addusers
5)改变文件的权限
命令:chmod +x addusers 6)执行
命令:sudo ./addusers 7)查看/etc/passwd
命令:cat /etc/passwd
思考题
1. 写一个脚本:
1).创建目录/tmp/scripts
2).切换工作目录至此目录中
3).复制/etc/pam.d目录至当前目录,并重命名为test
4).将当前目录的test及其里面的文件和子目录的属主改为redhat
5).将test及其子目录中的文件的其它用户的权限改为没有任何权限
2. 写一个脚本
通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线
如果在线,就显示“ip is up”
如果不在线,就显示“ip is down”
四.实验结果与分析讨论
五.实验总结
六.教师意见。

实验三-vi及Shell程序设计

实验三-vi及Shell程序设计

实验三及程序设计一、实验任务第一部分1.请在目录下建立一个名为的目录;(请书写命令)[ /]#2.进入目录;[ /]#3.将复制到本目录下;[ ]#4.使用开启本目录下的文件;[ ]#5.在中设定行号;6.移动到第58行,向右移动40个字符,请问看到什么目录?7.移到第1行,并向下搜寻2字符串,请问它在第几行?第118行8.将50到100行之间的改为,如何实现?:50,1009.修改完后,想全部复原,怎么样实现?!或者一直按u10.复制65到73行这9行的内容,并粘贴到最后一行之后;先按“65G”使光标移到65行,再按“9”,然后按“G”回到再回到最后一行,按“P”,就可以完成操作。

11.删除21到42行之间的开头为#符号的批注数据,如何实现?“21G”之后,再用“22”即可删除22行12.将这个文件另存为文件;13.转到第27行,并删除15个字符,结果出现的第一个单词是什么?14.在第一行新增一行,输入I a ,怎样实现?15.保存后退出。

第二部分程序设计1.请编写一个脚本,当执行该脚本的时候,该脚本可以显示:1)你目前的身份(用)2)你目前所在的目录(用)2. 请编写一个脚本,该程序可以计算“你还有多少天可以过生日”。

3. 让用户输入一个数字,程序可以由1+2+3...一直累加到用户输入的数字为止。

4. 请编写一个脚本,它的作用是:1)先查看一下这个名称是否存在;2)若不存在,则建立一个文件,使用来建立,建立完成后离开;3)如果存在的话,判断该名称是否为文件,若为文件则将它删除后建立一个目录,目录名为,之后离开;4)如果存在的话,判断该名称是否为目录,若为目录则删除此目录。

而且每一栏都以一行字符串 1 “”来显示,那个1表示行数。

,6. 请编写一个脚本,利用循环把当前目录下的所有*文件复制到指定的目录中,并显示复制后该目录内按文件大小排序的目录文件清单。

# :基本名当前目录路径指定目录路径# :$1x $1/*$x $2$27. 请编写一个脚本,它把第二个位置参数及其以后的各个位置参数指定的文件复制到第一个位置参数执行的目录中。

Linux操作系统实验3-Shell程序设计

Linux操作系统实验3-Shell程序设计

通过Shell编程中变量的定义和赋值的操作,进行条件测试语句的程序设计、选择结构的程序设计和循环结构的程序设计。

1.编写Shell程序,判断文件是否是符号链接文件,如果是则移动到/temp目录下,否则不做任何处理;代码:#!/bin/bash#filename:linkfileecho "Please input the direction of the file:"read FILENAMEif [ ! -f $FILENAME ];thenecho "$FILENAME is not exist!"exitelseif [ ! -L $FILENAME ];thenecho "$FILENAME is not a symbolic file!"exitelsemv $FILENAME /tempecho "$FILENAME has moved to /temp"fifi实验步骤:使用ln -s item link命令建立符号链接(软链接)文件,如图所示:为Q1.sh设置运行权限,并执行Q1.sh:查看链接文件情况:已经移动至/temp目录2.编写Shell程序,使用select命令生成选择菜单,允许用户在菜单中选择,并基于选择执行相应的命令;代码:#!/bin/bash#filename:selectPS3="Please choose the command:"select cmd in "ls -l" "date + %y" pwd who "cd /root" ps df clear exit do$cmdDone实验步骤:为Q2.sh设置运行权限,并执行Q2.sh:3.编写Shell程序,分别采用while和until循环结构来计算1~50之间所有奇数之和。

实验十三、shell程序设计

实验十三、shell程序设计

实验十三、shell程序设计一、实验目的:熟练掌握shell的使用,会编写简单的shell程序。

二、实验内容1、运行shell程序,给出结果。

例1、#! /bin/bashabc( ){ a=hackbaseecho $a}echo hosname : $HOSTNAMEecho username:$USERNAMEecho uid :$UIDabcls –l运行结果:例2、#!/bin/bashfor i in $HOME/*.shdorm $iecho “$i has been deleted !”done运行结果:2、编写shell程序例1:编写shell程序,实现自动删除5个账号的功能。

账号名为stud1至stud5。

例2:用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。

例3:设计一个shell程序,添加一个新组为class1,然后添加属于这个组的10个用户,用户名的形式为studxx,其中xx从01到10。

例4:设计一个Shell程序,在/userdata目录下建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

例5、编写一个shell程序,使用shell编写一个菜单,分别实现列出以下内容:(1)显示目录内容(将显示结果追加到myfile文件中)、(2)切换目录、(3)创建目录(在当前目录中创建子目录,权限设置为只有目录所有者有读、写和执行权限,其它用户无任何权限)(4)修改目录权限(将指定目录改为所有人皆可读权限)、(5)删除目录的功能。

Linux操作系统实验三shell编程

Linux操作系统实验三shell编程

Linux实验三shell 编程姓名:班级:计科1101班学号:10170106一、实验目的1、掌握Linux 下的C语言编译的基本方法2、理解make工具的功能,学会编制makefile的方法二、实验内容1、利用gcc编译C语言程序,使用不同的选项,观察并分析显示结果2、编写一个由多文件构成的C语言程序,编制makefile,运行make工具进行维护。

三、主要实验步骤1、设计一个程序,打印输出输入数字的正弦值。

要求定义属于自己的头文件,并且放在另外的目录中。

使用下列选项进行编译:-I, -E, -c , –o , -l 。

参考教材的P155-158节的内容。

2、针对下面4个C语言程序,main.c, one.c, two.c, public.h.。

写一个makefile 文件,运行make工具进行维护。

public.h 在另外的目录中。

Main.c:include"public.h"int main(){printf("main ...\n");show1();show2();return 0;}One.c#include"public.h"void show1(){printf("hello, this show1 \n");}Two.c#include"public.h"void show2(){printf("hello, this show2 \n");}public.h#ifndef __MANYCO_MAKEFILE_PUBLIC_1#define __MANYCO_MAKEFILE_PUBLIC_1#include<stdio.h>void show1();void show2();#endif实验代码:INCDIR=incedit:main.o show.o show.ogcc -o $@ $^main.o:main.cgcc -c $^ -o $@ -I${INCDIR} show1.o:show.cgcc -c $^ -o $@ -I${INCDIR} show.o:show.cgcc -c $^ -o $@ -I${INCDIR} clean:rm -r *.o四、心得体会我学会makefile的基本写法。

实验3:Shell程序设计

实验3:Shell程序设计

实验报告3课程名称:Linux驱动程序开发实验名称:Shell程序设计学生姓名:班级:学号:指导老师:钱振江成绩:一、实验目的1.Shell程序设计中变量的使用;2.理解通道的概念并初步掌握它的使用方法;3.掌握算术操作、字符串操作、逻辑操作、文件操作;4.掌握if then fi、if then elif fi、case、while、for等控制语句;5.在shell脚本中使用函数;二、实验任务与要求1.通过对shell程序的调试,理解变量$#,$0,$1,$2,$3,$@的含义;2.Shell顺序程序设计;3.Shell分支程序与多分支程序设计;4.Shell循环程序设计。

三、实验工具与准备计算机PC机,Linux Ubuntu操作系统预备知识1.环境变量:$HOME; $PATH; $PS1; $1~$9; $*; $@; $#; $$; $?; $!等。

$0是一个内部变量,它是必须的,而$1则可有可无,最常用的内部变量有$0、$#、$?、$*,它们的含义如下:❑$0 :命令所在的路径❑$# :传递给程序的总的参数数目❑$? :shell程序在shell中退出的情况,正常退出返回0,反之为非0值❑$* :传递给程序的所有参数组成的字符串2.字符串比较有=、!=、-n、-z;算术运算有-eq、-ge、-le、-ne、-gt、-=lt;逻辑运算有!、-a、-o;文件测试-d、-f、-x等;3.for 循环❑语法:for 变量in 列表do操作done4.while循环❑语法:while 表达式do操作done5.until循环❑语法:until 表达式do操作Done6.if语句❑语法:if 表达式1 then操作elif 表达式2 then操作elif 表达式3 then操作…else操作fi7.case语句❑语法:case 字符串in值1|值2)操作;;值3|值4)操作;;值5|值6)操作;;*)操作;;esaccase的作用就是当字符串与某个值相同是就执行那个值后面的操作。

实验指导书--实验03 Linux Shell编程

实验指导书--实验03 Linux Shell编程

实验三:Linux Shell编程
实验学时:2
实验类型:设计
实验要求:必修
一、实验目的
通过本实验的学习,使学生掌握Shell编程的基本方法。

二、实验内容
实验内容:Linux Shell实现题目所要求的功能。

三、实验原理、方法和手段

四、实验组织运行要求
以学生自主训练为主的开放模式组织教学
五、实验条件
PC机
六、实验步骤
1、编写一个Shell脚本,完成以下功能:
1)显示文字“Waiting for a while….”
Vi helloworld
#!/bin/bash
Echo “Waiting for a while….”
2)显示当前目录下面扩展名为”.h”的文件和目录,并输出重定向到/home/file.txt文件
Find .h
Find .h >>/home/file.txt
提示:显示文字可使用echo命令,搜索文件可使用find命令
2、编写一个Shell脚本,完成以下功能
计算8以内(含8)不是3的整数倍的数字的和
3、编写一个Shell脚本,在当前目录创建5个目录,目录的命名形式分别为:dir-1,dir-2,….,dir-5
七、思考题
比较C语言和Shell编程的一些异同点。

八、实验报告
实验预习:学习shell编程的基本方法
实验记录:记录解决问题所用的代码和运行结果
实验报告:提交代码和运行结果
九、其它说明。

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

实验三shell程序设计目的
1.理解shell操作环境
2.掌握shell程序编写方法
内容
1.练习、理解下面命令
history
history 20
!!
!vi
alias
alias ld=’ls -ld’
{ date;pwd;tty;stty; } > file1
echo ”123*456+789” | bc
var1=”abcd1234”
echo ${var1:3:4}
var2=${var1:=”abcd1200”}
echo $var2
echo ”$HOME $PWD”
echo ”我的主目录是$HOME”
echo ”当前目录是$PWD”
arr1=(long live chair mao)
echo ${arr1[1]}
arr2=(`date`)
echo ${arr2[3]}
echo ${arr1[*]}
echo ${arr1[@]}
echo $$
echo $?
[ $? -eq 0 ] || echo ”上面命令执行失败。


2.编写shell程序,按要求文件名保存在个人中目录下“实验3”子目录下。

1)文件名feb.sh,输出数列1 1 2 3 5 8 13 …前30项;
2)录入、阅读、运行程序dust.sh,理解程序的意义。

dust.sh代码如下:
#!/bin/bash
If [ $# -eq 0 ]
then
echo ”指定一个文件名。


else
gzip $1 #压缩文件
mv $1.gz $HOME/dustbin
echo ”文件$1被删除!”
fi
exit 0
3)文件名colle.sh,收集2016 级学生实验3编写程序文件。

学生用户的名称是学生学号,如2016012999,用户主目录是/home/学号(如/home/2016012999)。

将学生用户主目录下“实验3”子目录中文件feb.sh(有些学生为有该文件,有些学生没有)复制用户主目录下,并改名为“学号_feb.sh”(如2016012999_feb.sh)。

3.阅读理解程序,程序文件在主机202.117.179.233,目录/var/materials下。

实验报告书写指导
1.将你对操作、显示信息的理解写在操作命令后;
2.实验报告提交到202.117.179.110;
3.编写的shell程序保存在个人目录下“实验3”子目录中。

相关文档
最新文档