实验5:Shell程序设计基础(2):控制结构
一、实验目的
1. 了解程序设计控制结构的概念;
2. 掌握Shell编程常用的控制结构。
二、实验环境
1. 操作系统:客户端Windows,服务器端Linux
2. 主要软件:putty
三、实验原理
控制结构分顺序结构、判断和循环三类。
(一)顺序结构
Shell顺序结构包括换行和分号(;)两种,比较简单,不再详述。
(二)判断结构
Shell判断结构分为if和case两种。
1. if结构
if 条件表达式
then 命令表
[elif 表达式
then 命令表]
[else 命令表]
fi
可以把if和then放在同一行,用分号“;”分隔:
if 表达式; then
命令表
fi
条件表达式可以是[ ]、test、[[ ]]或命令,返回值为0的表达式为真,返回值为其他值的表达式为假。
2. case结构
case 表达式 in
模式11 [ |模式12 ]...) 命令表1;;
模式21 [ |模式22 ]...) 命令表2;;
...
*) 命令表n;;
esac
每个分支以右括号“)”分隔模式与命令,管道符“|”分隔同一分支的各个模式,表示或,两个分号“;;”表示
分支结束。星号“*”表示除以上模式之外的情况。
(三)循环结构
Shell循环结构包括for、while、until和select四种。
1. for循环
for 变量 [in 列表]
do
命令表
done
如果省略了列表,则隐含表示为“for 变量 in $@”,即位置参数列表。bash里的for不能设定循环执行的次数。
2 while结构
while 表达式
do
命令表
done
3. until循环
until
命令表1
test 表达式
do
命令表2
done
命令表1在循环开始前执行,测试如果为假,则进入循环,执行命令表2。之后再次执行命令表1,测试……
直到测试结果为真,终止循环。
4. select结构
select结构生成一个数字化的菜单,并提示用户进行选择,默认提示符为“#”。用户只需在提示符下输入
对应菜单项的数字,即可完成选择。
select 变量 in 列表
do
命令表
done
例:
select N in one two three
do
case $N in
one) echo I;;
two) echo II;;
three) echo III;;
*) echo wrong
break;
esac
done
上面的代码会显示菜单:
1) one
2) two
3) three
#?
循环结构的循环体以do开始,以done结束。各循环结构均支持用continue和break跳出循环,其中
continue跳过当前循环,继续下一次循环;break跳出整个循环。
四、实验内容
1. 在自己的主目录下的linux/exp目录中新建目录exp_5;
2. 在目录exp_5中编写Shell脚本score.sh,实现下列功能:利用命令行参数提供给程序一个整数,
程序判断:
0-59分,提示不及格;
60-69分,提示成绩为及格;
70-79分,提示成绩为中;
80-89分,提示成绩为良;
90-100分,提示成绩为优;
其它,提示超出范围。
要求程序运行时能判断是否提供了命令行参数,没有参数提示出错。
五、实验报告
1.实验环境(包括操作系统和软件),实验步骤,结果文件记录;
2.实验中遇到的问题,如何解决的。