linux的shell脚本实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二次实验内容
一、实验名称:Linux下shell编程
二、实验类型:设计
三、实验目的:
1.熟悉Linux的shell几种变量使用
2.熟练掌握Linux的shell编程几种结构
3.熟练掌握Linux下shell脚本的编写
四、实验准备
参考教材,课件第7章内容及笔记。要求实验内容全部写到实验报告上(B5纸)。
五、实验内容
1. 练习使用shell四种变量,参考课件例题。
用户自定义变量,环境变量,位置变量,特殊变量这四种变量类型的使用,书中有例题。
2. 调试课件所有shell脚本的例题。
3. 编写如下脚本:
●编写脚本if1,测试其功能。
echo -n "word 1: "
read word1
echo -n "word 2: "
read word2
if test "$word1" = "$word2"
then
echo "Match"
fi
echo "End of program."
●编写脚本chkargs,测试其功能
if test $# -eq 0
then
echo "You must supply at least one argument."
exit 1
fi
echo "Program running."
●编写脚本if2,测试其功能
if test $# -eq 0
then
echo "You must supply at least one argument."
exit 1
fi
if test -f "$1"
then
echo "$1 is a regular file in the working directory"
else
echo "$1 is NOT a regular file in the working directory"
fi
●编写脚本if3,测试其功能
echo -n "word 1: "
read word1
echo -n "word 2: "
read word2
echo -n "word 3: "
read word3
if [ "$word1" = "$word2" -a "$word2" = "$word3" ]
then
echo "Match: words 1, 2, & 3"
elif [ "$word1" = "$word2" ]
then
echo "Match: words 1 & 2"
elif [ "$word1" = "$word3" ]
then
echo "Match: words 1 & 3"
elif [ "$word2" = "$word3" ]
then
echo "Match: words 2 & 3"
else
echo "No match"
fi
●编写smartzip 脚本,测试其功能
#!/bin/bash
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
gunzip "$1" ;;
"$1: bzip2 compressed"*)
bunzip2 "$1" ;;
*) echo "File $1 can not be uncompressed with smartzip";;
esac
●编写脚本dirfiles,测试其功能。
for i in *
do
if [ -d "$i" ]
then
echo "$i"
fi
done
●编写脚本until1,测试其功能。用while改写之。
secretname=jenny
name=noname
echo "Try to guess the secret name!"
echo
until [ "$name" = "$secretname" ]//while改写位 while [ “$name” !=“$secretname” ],其他地方不变
do
echo -n "Your guess: "
read name
done
echo "Very good."
●编写脚本brk,测试其功能。
for index in 1 2 3 4 5 6 7 8 9 10
do
if [ $index -le 3 ] ; then
echo "continue"
continue
fi
#
echo $index
#
if [ $index -ge 8 ] ; then
echo "break"
break
fi
done
●编写脚本command_menu,测试其功能。
echo -e "\n COMMAND MENU\n"
echo " a. Current date and time"
echo " b. Users currently logged in"
echo " c. Name of the working directory"
echo -e " d. Contents of the working directory\n"
echo -n "Enter a, b, c, or d: "
read answer
echo
case "$answer" in
a)
date;;
b)
who;;
c)
pwd;;
d)
ls;;
*)
echo "There is no selection: $answer";;
esac
●编写脚本demo_shift,测试其功能。
echo "arg1= $1 arg2= $2 arg3= $3"
shift
echo "arg1= $1 arg2= $2 arg3= $3"
shift
echo "arg1= $1 arg2= $2 arg3= $3"
shift
echo "arg1= $1 arg2= $2 arg3= $3"
shift
●编写shell脚本sum1,求命令行上整数和。即:$./sum1 5 12 4 6,给出和的结果。
sum=0
for i in $*
do
let sum=sum+i
done
echo “和是:$sum”
●编写脚本filetest,判断当前目录下所有文件类型,如果是普通文件,显示文件内