Linux上Shell程序设计

深 圳 大 学 实 验 报 告

课程名称: 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 ' 深圳大学学生实验报告用纸

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4