南京信息工程大学  实验(实习)报告
【实验目的】
1、了解和熟悉创建并使用脚本的步骤。
2、熟悉bash的控制结构。
3、学会简单的shell编程。
【实验内容】
1、创建一个简单的列目录和日期的shell 脚本并运行之。
步骤:
⑴输入下列命令,创建一个新文件:
cat >new_script
⑵输入下列行:
echo Your files are
ls
echo today is
date
按回车键将光标移到一个新行,按Ctrl+D键保存并退出。
⑶检查文件内容,确保它是正确的:
cat new_script
⑷运行脚本,输入它的文件名:
new_script
该脚本不运行。
⑸输入下列命令,显示文件的权限:
ls l new _script
权限表明该文件不是可执行。要通过简单调用文件名来运行脚本,必须有权限。
⑹输入下列命令,使new_script变成可执行文件。
chmod +x new_script
⑺要查看新的权限,输入:
ls shell代码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”。<编程提示>请使用ifthenelse 控制结构。
程序运行过程如下:
5、编程使用case 结构创建一个简单的菜单,屏幕显示菜单:
a. Current date and time
b. User currently logged in
c. Name of the working directory
d. Contents of the working directory
Enter a,b,c or d:
根据用户输入选项做相应操作。
shell编程代码如下:
程序运行结果如下:
6、修改上题,使用户可以连续选择直到想退出时才退出。
shell编程代码如下:
程序运行结果如下:
7、编程使用select 结构生成一个菜单如下:
1apple 3)blueberry 5)orange 7)STOP
2) banana 4)kiwi 6)watermelon
Choose your favorite fruit from these possibilities:
用户输入所选项,如 1 显示:
You chose apple as you favorite.
That is choice number 1.
shell编程代码及运行结果如下:
8、上机编写如下代码,分析下面的程序,简要说明整体功能,并解释每条语句
#!/bin/sh
val=1
while (test $val -lt 6)
do touch file$val
date>>file$val
val=`expr $val + 1`
done
9、编写一段shell程序,根据执行时候获取的当前时间显示出不同的问候信息。
10、用Shell 编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev 目录下
11、在根目录下有四个文件m1.txtm2.txtm3.txtm4.txt,用Shell 编程,实现自动创建m1,m2,m3,m4 四个目录,并将m1.,m3.四个文件分别拷贝到各自相应的目录下
【实验小结】
通过几周的实习,我基本上掌握了shell的编程,了解和熟悉创建并使用脚本的步骤
熟悉bash的控制结构学会简单的shell编程;能够通过编程实现一些功能,学会了Shell的一些控制语句,测试,Shell变量,Shell的特殊字符等。
当然了,在实习的过程中肯定会遇到很多的困难,但是根据老师的给出的pdf文件,根据上面的说明一步一步的做,问题不大,遇到了实在解决不了的问题,我会去请教老师和同学,把问题解决掉。初步学会了Linux下Shell的编程,为以后更加系统的学习Linux打下了坚实的基础!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。