深 圳 大 学 实 验 报 告
课程名称: Linux操作系统
实验项目名称: Linux上shell程序设计
学院: 计算机与软件学院
专业:
指导教师: 冯禹洪
报告人: 学号: 班级:
实验时间:
实验报告提交时间:
教务处制
一、 实验目标:
1. 熟悉vi编辑器的使用 2. 掌握简单的Shell编程
2.1. 掌握Shell变量的使用 2.2. 掌握Shell表达式的使用
2.3. 掌握Shell流程控制语句的使用 3. 熟悉Shell程序的执行和跟踪
二、实验环境与工件
湖边Linux实验室 Fedora 13
三、实验内容与步骤:
准备工作:如果当前系统已经有学生名字加学号命名的账号,则直接以该账号登录,然后转2,一次完成后面的实验内容。 i.
创建一个以学生名字加学号命名的账号,不如,学生名字为张山,学号为123,则操作如下: #useradd zhangshan123 #passwd zhangshan123 然后以zhangshan123名字登录
ii.
在主目录下
a) 创建文件夹:ShellProgram $mkdir ShellProgram b) 进入ShellProgram子目录 $cd ShellProgram
iii.
题(一)
1. 下面哪个命令会实现将变量VAR1和VAR2相加,并且值存入变量VAR3的功能?( )(5分) 深圳大学学生实验报告用纸
请根据自己对Linux的熟悉程度选做题(一)或题(二)
A. [ $VAR3 = $VAR1 + $VAR2 ] B. $VAR3 = [ $VAR1 + $VAR2 ] C. $VAR3 = (( VAR1 + VAR2 )) D. (( VAR3 = VAR1 + VAR2 ))
2. 以下程序的输出是?( )(5分) #!/usr/bin/sh A=1
while [ $A -lt 10 ] do
B=1
while [ $B -lt 10 ] do
break 2
echo \ done
echo \done
A. “Inner loop” 将被打印10次 B. “Outer loop” 将被打印10次. C. “Outer loop” 将被打印10次. D. 什么都没有被打印.
3. 请在vi中逐一编辑,修正(如果有误)并执行以下10个shell脚本程序,然后结合所学知识和程序的输出理解各程序中各语句的含义,对各小题附上结果截图。(每小题5分)
3.1. 编写一个简单的回显用户名的shell程序。 #!/bin/bash #filename:date
echo \echo 'date'
echo Whish you a lucky day!
3.2.使用if-then语句创建简单的shell程序。 #!/bin/bash
深圳大学学生实验报告用纸
#filename:bbbb
echo -n \read ANSWER
if [ $ANSWER=N -o $ANSWER=n ] then exit fi
3.3.使用if-then-else语句创建一个根据输入的分数判断是否及格的shell程序。 #!/bin/bash #filename:ak
echo -n \read SCORE
echo \if [ $SCORE -ge 60 ]; then
echo -n \else
echo -n \fi
echo -n \read $GOOUT
3.4.使用case语句创建一个菜单选择的shell程序。 #!/bin/bash #filename:za #Display a menu echo _
echo \echo \echo \echo
#Read and excute the user's selection echo -n \read CHOICE
case \1) echo \2) echo \3) echo \
*) echo \exit 1 esac
3.5.使用for语句创建简单的shell程序。 深圳大学学生实验报告用纸
#!/bin/bash #filename:mm for ab in 1 2 3 4 do
echo $ab done
3.6.使用for语句创建求命令行上所有整数之和的shell程序。 #!/bin/bash #filename:qqq sum=0
for INT in $* do
sum='expr $sum + $INT' done echo $sum
3.7.使用while语句创建一个计算1-5的平方的shell程序。 #!/bin/bash #filename:zx int=1
while [ $int -le 5 ] do
sq='expr $int \\* $int' echo $sq
int='expr $int + 1' done
echo \
3.8.使用while语句创建一个根据输入的数值求累加和(1+2+3+4+…+n)的shell程序。 #!/bin/bash #filename:sum
echo -n \read NUM number=0 sum=0
while [ $number -le $NUM ] do
echo number echo \
number=' expr $number + 1 ' echo sum echo \
sum=' expr $sum + $number ' 深圳大学学生实验报告用纸