≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
实验四 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.总结上机调试过程中所遇到的问题和解决方法及感想。
南京信息工程大学实验实习报告实验目的1了解和熟悉创建并使用脚本的步骤2熟悉bash的控制结构3学会简单的shell编程实验内容1创…
LINUX实验报告专业班级学号姓名报告时间1实验一Shell编程一实验名称考勤模拟shell程序设计二实验目的理解Shell程序的…
实验报告学生打印后提交实验名称shell编程实验时间10年04月21日实验人员姓名学号年级实验目的1熟悉使用Linux下的软件开发…
南京信息工程大学实验实习报告实验目的1了解和熟悉创建并使用脚本的步骤2熟悉bash的控制结构3学会简单的shell编程实验内容1创…
LINUX实验报告专业班级学号姓名报告时间1实验一Shell编程一实验名称考勤模拟shell程序设计二实验目的理解Shell程序的…
EDA可编程逻辑器件《实验总结》学号:姓名:班级:EDA试验心得体会当看到这门课的时候,我最初的感觉是很无语,书本上一大堆看不懂的…