LINUX-Shell编程实验报告

LINUX管理与应用》课程实验报告

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

 

第二篇:Linux实验报告(实验四) shell编程实验

实验四 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.总结上机调试过程中所遇到的问题和解决方法及感想。

相关推荐