当前位置:文档之家› 第二次实验内容10

第二次实验内容10

第二次实验内容
一、实验名称:Linux下shell编程
二、实验类型:设计
三、实验目的:
1.熟悉Linux的shell几种变量使用
2.熟练掌握Linux的shell编程几种结构
3.熟练掌握Linux下shell脚本的编写
四、实验准备
参考教材,课件第6章内容及笔记。

要求实验内容全部写到实验报告上(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" ;;
*) error "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" ]
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脚本sum,求1-100累加和。

●编写shell脚本sum1,求命令行上整数和。

即:$./sum1 5 12 4 6,给出和的结果。

●编写脚本filetest,判断当前目录下所有文件类型,如果是普通文件,显示文件内
容;如果是目录文件,显示目录列表;如果是大小为0的文件,删除它;否则,显示“sorry, The file is not recognized!”
●编写shell脚本user,判断当前登录用户是否为“学号命名”的用户,是,提示:
hello “学号用户”,welcome!,否,提示“you should login using your username! ”
●编写脚本month,如果输入12个月的数字,提示输出其对应的英文单词,否则,提
示输入1-12的数字,直到输入0,脚本执行结束。

●编写shell脚本menu,使用shell编写一个菜单,分别实现列出以下内容:(1)显
示目录内容、(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件的
功能。

在此例中将用到循环语句、分支语句和输入输出语句。

编写脚本,实现一个简单计算器。

+ addition
- subtraction
x multiplication
/ division
脚本执行形式:
$ ./cal.sh 21/3
六、实验总结。

相关主题