linux操作系统实验三

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

实验三LINUX SHELL脚本程序设计

一、实验目的

通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。

二、实验环境

操作系统:任何Unix/Linux及Sun Solaris 或windows 系列

应用系统:SHELL 或windows环境下的cygwin模拟系统

三、实验内容

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

⑴创建以下菜单程序:

USER: **** HOST: ******** DATE: **/**/20**

A: 创建子目录并复制文件

B: 文件权限测试

C: 文件字符转换

D: 文件总数及文本行数统计

E: 文件查找

Q: 退出系统

———————————————————————————————

A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示两文件的内容。显示完成后将file1、file2两文件截断为大小为0的空文件。

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

C:将file1、file2两文件中的小写字符转换为大写,并将转换后的内容分别写入新文件。判断上述操作成功后分别显示转换后的新文件的内容。

D:统计/dev目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。

E:在/dev目录下查找由s开头且文件名由5个字符组成的文件,找到后用file命令显示其文件类型。

yxh@Cancer:~$ #!/bin/sh

yxh@Cancer:~$ MYDATE='2016-11-01'

yxh@Cancer:~$ THIS_HOST='yxh'

yxh@Cancer:~$ USER='yinxiaohang'

yxh@Cancer:~$ while :

> do

> tput clear

> cat <

> ------------------------------------------------------------------------------ User:$USER Host:$THIS_HOST Date:$MYDATE ------------------------------------------------------------------------------

A:创建子目录并复制文件B:文件权限测试C:文件字符转换D:文件总数及文本行数统计E:文件查找Q:退出系统------------------------------------------------------------------------------

> MAYDAY

> echo -e -n "\tYour Choice [A,B,C,D,E,Q] : "

> read CHOICE

> case $CHOICE in

> A|a)mkdir --mode=755 /home/yxh/test/yinxiaohang

> if test -d "/home/yxh/test/yinxiaohang"

> then cp file1 file2 /home/yxh/test/yinxiaohang

> cat file1

> cat file2

> :> /home/yxh/test/yinxiaohang/file1

> cat /home/yxh/test/yinxiaohang/file1

> :> /home/yxh/test/yinxiaohang/file2

> cat /home/yxh/test/yinxiaohang/file2

> else echo file1 is not a file name

> fi

> ;;

> B|b) if [ -f file1 ]

> then test -r file1 -a -w file1 -a -x file1

> ls -l file1

> else echo file1 do not rwx

> fi

> ;;

> C|c)tr 'a-z' 'A-Z' < file1 > 1

> tr 'a-z' 'A-Z' < file2 > 2

> if test -f 1 -a 2

> then cat 1

> cat 2

> else echo fail!

> fi

> ;;

> D|d)ls -l /dev

> ls -l /dev |grep ^d|wc -l

> ls -l /dev |grep ^l|wc -l

> cat 3

> cat 3|grep '^$'|wc -l

> env

> ;;

> E|e)find /dev -name "s[a-z][a-z][a-z][a-z]"

> find /dev -name "s[a-z][a-z][a-z][a-z]" >4 > var=$(cat 4)

> file -b ${var%%.*}

> ;;

> Q|q)exit 0

> ;;

> *)echo -e "\t\007unknown user reponse"

> ;;

> esac

> echo -e -n "\tHit the return key to continue" > read DUMMY

> done

相关文档
最新文档