文档详情

linux的shell脚本实验报告

汽***
实名认证
店铺
DOCX
38.70KB
约7页
文档ID:479189323
linux的shell脚本实验报告_第1页
1/7

linux的shell脚本实验报告第二次实验内容 一、实验名称:Linux下shell编程 二、实验类型:设计 三、实验目的: 1. 2. 3. 熟悉Linux的shell几种变量使用 熟练掌握Linux的shell编程几种结构 熟练掌握Linux下shell脚本的编写 四、实验准备 参考教材,课件第7章内容及笔记要求实验内容全部写到实验报告上 五、实验内容 1. 练习使用shell四种变量,参考课件例题 用户自定义变量,环境变量,位置变量,特殊变量这四种变量类型的使用,书中有例题 2. 调试课件所有shell脚本的例题 3. 编写如下脚本: l 编写脚本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." l 编写脚本chkargs,测试其功能 if test $# -eq 0 then echo "You must supply at least one argument." exit 1 fi echo "Program running." l 编写脚本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 l 编写脚本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 l 编写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 l 编写脚本dirfiles,测试其功能。

for i in * do if [ -d "$i" ] then echo "$i" fi done l 编写脚本until1,测试其功能用while改写之 secretname=jenny name=noname echo "Try to guess the secret name!" echo until [ "$name" = "$secretname" ]//while改写位 while [ “$secretname” ],其他地方不变 do echo -n "Your guess: " read name done echo "Very good." l 编写脚本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 “$name” != done l 编写脚本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 l 编写脚本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 l 编写shell脚本sum1,求命令行上整数和。

即:$./sum1 5 12 4 6,给出和的结果 sum=0 for i in $* do let sum=sum+i done echo “和是:$sum” l 编写脚本filetest,判断当前目录下所有文件类型,如果是普通文件,显示文件内容;如果是目录文件,显示目录列表;如果是大小为0的文件,删除它;否则,显示“sorry, The file is not recognized!” for i in * do if [ -d $i ] then ls $i elif [ -f $i ] then if [ -s $i ] then cat $i else rm $i fi else echo –n “sorry,the file can’t be recognized” fi done l 编写shell脚本user,判断当前登录用户是否为“学号命名”的用户,是,提示:hello “学号用户”,welcome!,否,提示“you should login using your username! ” Read name If [ $USER = $name ] Then echo “hello $USER” else echo “you should login using your username!” fi l 编写shell脚本menu,使用shell编写一个菜单,分别实现列出以下内容:显示目录内容、切换目录、创建文件、编辑文件、删除文件的 l 功能。

在此例中将用到循环语句、分支语句和输入输出语句 Echo “a.display the directory” Echo “b.change the directory” Echo “c.create a file” Echo “d.delete the file” Echo “if you input nothing,you will exit” Read item Until [ -z $item ] Do Case $item in a) Echo “input the directory” Read dire Ls $dire;; b) Echo “input the directory you want go into” Read dire Cd $dire;; c) Echo “input the file you want to create” Read f Touch $f;; d) Echo “input the file you want to delete” Read f Rm $f;; Esac Echo “a.display the directory” Echo “b.change the directory” Echo “c.create a file” Echo “d.delete the file” Echo “if you input nothing,you will exit” Read item done l 编写脚本,实现一个简单计算器。

+ addition - subtraction x multiplication / division 脚本执行形式: $ ./cal.sh 21 / 3 Let l=$1 //最简单的一种形式,而且还特别高效 Echo $1; 第二种方式: Re=”+ - \* /” For var in $re Do If [ $var = “\*” ] Then Num2=${1#*\*} Num1=${1%\**} Else Num2=${1#*$var} Num1=${1#%$var*} Fi If [ $num1 = $1 ] Then continue Fi Case $var in “+”) let num=num1+num2 Break;; “-“) let num=num1-num2; Break;; “\*”)let num=num1*num2 Break;; “/”)let num=num1/num2 Break;; Esac Done Echo $num 六、实验总结 。

下载提示
相似文档
正为您匹配相似的精品文档