Linux上Shell程序设计Word格式文档下载.docx
《Linux上Shell程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Linux上Shell程序设计Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
2.1.掌握Shell变量的使用
2.2.掌握Shell表达式的使用
2.3.掌握Shell流程控制语句的使用
3.熟悉Shell程序的执行和跟踪
二、实验环境与工件
湖边Linux实验室
Fedora13
三、实验内容与步骤:
准备工作:
如果当前系统已经有学生名字加学号命名的账号,则直接以该账号登录,然后转2,一次完成后面的实验内容。
i.创建一个以学生名字加学号命名的账号,不如,学生名字为张山,学号为123,则操作如下:
#useraddzhangshan123
#passwdzhangshan123
然后以zhangshan123名字登录
ii.在主目录下
a)创建文件夹:
ShellProgram
$mkdirShellProgram
b)进入ShellProgram子目录
$cdShellProgram
iii.请根据自己对Linux的熟悉程度选做题
(一)或题
(二)
题
(一)
1.下面哪个命令会实现将变量VAR1和VAR2相加,并且值存入变量VAR3的功能?
()(5分)
A.[$VAR3=$VAR1+$VAR2]
B.$VAR3=[$VAR1+$VAR2]
C.$VAR3=((VAR1+VAR2))
D.((VAR3=VAR1+VAR2))
2.以下程序的输出是?
#!
/usr/bin/sh
A=1
while[$A-lt10]
do
B=1
while[$B-lt10]
do
break2
echo"
Innerloop"
done
Outerloop"
done
A.“Innerloop”将被打印10次
B.“Outerloop”将被打印10次.
C.“Outerloop”将被打印10次.
D.什么都没有被打印.
3.请在vi中逐一编辑,修正(如果有误)并执行以下10个shell脚本程序,然后结合所学知识和程序的输出理解各程序中各语句的含义,对各小题附上结果截图。
(每小题5分)
3.1.编写一个简单的回显用户名的shell程序。
/bin/bash
#filename:
date
echo"
Mr.$USER,Todayis:
"
echo'
date'
echoWhishyoualuckyday!
3.2.使用if-then语句创建简单的shell程序。
bbbb
echo-n"
Doyouwanttocontinue:
YorN"
readANSWER
if[$ANSWER=N-o$ANSWER=n]
then
exit
fi
3.3.使用if-then-else语句创建一个根据输入的分数判断是否及格的shell程序。
ak
pleaseinputascore:
readSCORE
YouinputScoreis$SCORE"
if[$SCORE-ge60];
Congratulation!
YouPasstheexamination."
else
Sorry!
YouFailtheexamination!
pressanykeytocontinue!
read$GOOUT
3.4.使用case语句创建一个菜单选择的shell程序。
za
#Displayamenu
echo_
1Restore"
2Backup"
3Unload"
echo
#Readandexcutetheuser'
sselection
EnterChoice:
readCHOICE
case"
$CHOICE"
in
1)echo"
Restore"
;
2)echo"
Backup"
3)echo"
Unload"
*)echo"
Sorry$CHOICEisnotavalidchoice
exit1
esac
3.5.使用for语句创建简单的shell程序。
mm
forabin1234
do
echo$ab
3.6.使用for语句创建求命令行上所有整数之和的shell程序。
qqq
sum=0
forINTin$*
sum='
expr$sum+$INT'
done
echo$sum
3.7.使用while语句创建一个计算1-5的平方的shell程序。
zx
int=1
while[$int-le5]
sq='
expr$int\*$int'
echo$sq
int='
expr$int+1'
Jobcompleted"
3.8.使用while语句创建一个根据输入的数值求累加和(1+2+3+4+…+n)的shell程序。
sum
PleaseInputNumber:
readNUM
number=0
while[$number-le$NUM]
echonumber
$number"
number='
expr$number+1'
echosum
$sum"
expr$sum+$number'
echo
3.9.使用until语句创建一个计算1-5的平方的shell程序。
xx
until[$int-gt5]
3.10.使用until语句创建一个输入exit退出的shell程序。
hk
Thisexampleisfortestuntil....do"
Ifyouinput[exit]thenquitthesystem"
pleaseinput:
readEXIT
until[$EXIT="
exit"
]
OK!
4.写一个Shell脚本,接收两个文件名作为参数。
该脚本将检查两个文件内容是否一样,如果一样就删除第二个文件。
请附程序和运行结果截图(5分)
参考代码:
测试:
5.写一个Shell脚本来检查当前目录中所有文件的可执行权限,如果存在一个文件没有可执行权限,则为其添加可执行权限。
6.编写一个shell脚本,输入1–10之间的一个数,并判断它是否小于5。
请附程序和运行结果截图,请注意程序的易读性。
(10分)
7.编写一个shell脚本,随机输入5个数,打印出了值为3的倍数的所有数。
(20分)
题
(二)
1.编写shell脚本将当前目录下大于10k的文件转移到/tmp目录下(30分)
#vi10K.sh
#ext-1
#Usingformovecurrentlydirectoryto/tmp
forFilenamein$(ls-l|awk'
$5>
10240{print$9}'
)
mv$Filename/tmp
ls-la/tmp
Done!
2.设计一个Shell程序,在~/data/目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:
读;
文件所有者的权限为:
读、写、执行;
文件所有者所在组的权限为:
读、执行。
(30分)
#7.sh
#fileexecutable:
chmod7557.sh
PATH=/bin:
/sbin:
/usr/bin:
/usr/sbin:
/usr/local/bin:
/usr/local/sbin:
~/bin
exportPATH
for((i=1;
i<
=50;
i++))
mkdir-p/usrdata/user$i
cd/usrdata
chmod754user$i
3.找出系统内大于50k,小于100k的文件,并用长格式显示它们的详细属性.(40分)
四、实验结果
五、实验总结与体会
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注: