实验三-shell脚本程序设计

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

实验报告

课程名称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函数。

C:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。

统计/dev目录下块设备文件和字符设备文件的数目;统计date命令的帮助手册中空行的个数。

D:用长格式(ls -l)显示目录/dev中所有符号链接文件,①将输出结果排序后写入文件file1,②将输出结果的后3行排序后写入file2文件;使用comm命令将两个文件的共有行写入文件file3。将file1、file2两文件拷入上面新创建的子目录中,最后将文件file2截断为大小为0的空文件。

File1有内容。File2为空,本来有三行。如下:

E:将file1文件中的字符“-”删除,再将字符“>”用“”替换,修改后写入新文件

newf1。判断上述操作成功后显示新文件newf1的内容。

源代码如下:

#!/bin/bash

#menu

USER=`whoami`

THIS_HOST=`hostname -s`

MYDATE=`date +%d/%m/%y`

while :

do

clear

cat << MAYDAY

-------------------------------------------------------------------------------------------------------

USER:$USER Host:$THIS_HOST Date:$MYDATE

-------------------------------------------------------------------------------------------------------

A:创建子目录并测试

B:文件查找

C:文件权限测试及统计

D:文件创建与复制

E:文件内容修改

Q: 退出系统

----------------------------------------------------------------------------------------------------

MAYDAY

echo -n "你的选择[A,B,C,D,E,Q]:"

read CHOICE

case $CHOICE in

A|a)

mkdir 1463

chmod u+wxr 1463

chmod g+xr 1463

chmod o+x 1463

ls

;;

find /dev -name sd* >dev1463 v=$(cat dev1463)

echo $v

file -b $v

echo 'SHELL变量和函数'

set

;;

C|c)

echo "请输入文件的绝对路径" read fpath

[ -r $fpath ]

if [ $? -eq 0 ]

then

echo "可读"

else

echo "不可读"

fi

[ -w $fpath ]

if [ $? -eq 0 ]

then

echo "可写"

相关文档
最新文档