实验四 shell程序设计: shell控制语句

本文通过实验介绍了Shell编程中的控制语句,包括条件表达式、判断与分支语句、循环语句和函数的使用。例如,用if条件判断用户名,用case判断时间,for循环找最小值,while循环求和,以及自定义函数比较两个数的大小。实验旨在巩固Shell编程基础知识。
摘要由CSDN通过智能技术生成

实验四  shell程序设计: shell控制语句

 

实验目的

进一步巩固shell程序设计语言基本语法,加深对所学知识理解。

 

实验内容

要求学生掌握以下内容

(1) 条件表达式

(2) 判断和分支语句

(3) 循环语句

(4) 函数

 

实验内容

1 条件表达式

$ test  10  -gt  5  // 算数表达式 10>5

$ echo $?   //显示上述表达式的运行结果

$ [ 10 -lt 5 ]  //算数表达式10<5

$ echo $?

 

 

2. 条件和分支语句

使用编辑器vi编辑下列shell脚本

(1)判断输入的用户名是否为当前用户名

#!/bin/bash

       echo -n "Enter your login name:"

       read name

       if [ "$name" ="$USER" ];

       then

              echo "Hello, $name. How areyou today ?"

       else

              echo "You are not $USER, sowho are you ?"

       fi

将上述脚本保存至test_uf.sh,运行该脚本

$ bash test_uf.shzhangs

 

(2) 判断当前所处的时间

#!/bin/bash

hour=`date +%H`

  case $hour in

 0[1-9] | 1[01] ) 

        echo "Good morining !!"

        ;;

1[2-7] )

        echo "Good afternoon !!"

        ;;

 * )

        echo "Good evening !! "

        ;;

esac

将上述脚本保存至文件test_case.sh,运行该程序

$ bashtest_case.sh //观察运行结果

 

3. 循环语句

(1)计算最小值

#!/bin/bash

smallest=10000

for i in  12 5 18 58 -3 80

do

if test $i -lt$smallest

then

  smallest=$i

fi

done

echo " Thesmallest number is: $smallest"

将上述脚本保存至 test_for.sh,运行该脚本

$ bashtest_for.sh  // 观察运行结果

 

(2)计算1100之间整数的和

#!/bin/bash

i=1

sum=0

while [ $i -le 100]

do

  sum=`expr $sum + $i`

  i=`expr $i + 1`

done

echo The sum is$sum

将上述脚本保存至文件test_while.sh,运行该脚本

$ bashtest_while.sh

 

4. 函数

运用函数判断两个数的大小

#!/bin/bash

 compare()

{

  if [ "$1" -eq "$2" ]

   then

       return 0

  elif [ "$1" -gt "$2" ]

   then

     return 1

  else

     return 2

 fi

 

  } 

compare $1 $2

case $?  in

    0)

      echo "$1 = $2"

      ;;

    1)

       echo "$1 > $2"

       ;;

   2)

  echo "$1 < $2"

     ;;

esac

 

将上述脚本保存至文件test_fun.sh,运行该脚本

$ bash test_fun.sh10 36 //观察运行结果

 

5. 思考题

1. 函数内的$1,$2与函数外的$1,$2有何区别
函数内的$1$2是指变量,而函数外的$1$2则是添加到Shell的各参数值。$1是第1参数、$2是第2参数

       若在正则表达式中,匹配出的第123个子表达式

 

2. 给出本地变量的作用域

       作用域为整个bash进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值