UNIT19 Shell Functions

UNIT19 Shell Functions

1.函数定义

functionName(){命令序列;}

function functionName { COMMANDS; }

2.函数调用

functionName

functionName 位置参数

3.函数返回

return  用函数中执行的上一个命令的退出码返回;

return [value] 用给定的value值返回;

4.全局函数

export命令可以将函数说明为全局函数,使其可以被子shell继承。

5.函数共享

把要共享的函数单独放在一个文件中,然后在要使用该函数的脚本中,在开始位置用以下格式的命令读取该文件。

.fileNme

Source fileName

6.变量限制

local 变量名

限制函数只能本地用于当前函数。

#!/bin/sh

printmsg( ){

        prefix=“$1”

        shift

        echo “$prefix:$@”

}

printmsg “$@”      #调用函数

   所有函数在使用前必须定义,这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它,才可以使用。

   调用函数仅使用其函数名即可,要传给函数的变量跟在函数后面。

   函数里面定义的变量以下划线(_)开始。

   函数可以放在同一个文件中作为一段代码,也可以放在只包含函数的单独文件中,文件也必须以#!/bin/sh开头。

示例1

#!/bin/sh

#funTest

#to test the function

DATE=`date`

Hello()

{

  echo “Hello,today is $DATE”

}

Hello

Shell脚本也有自定义函数的功能。当脚本变得很大时,可将脚本文件中常用的程序写成函数,这样可以使脚本更小.更易于维护,定义函数的语法如下:

fname ()  {

       Shellcommands

           }

例:求命令行中输入的数值组的最大的数,将文件存为maxvalue。

#!/bin/bash

max()

{        

while test $1

do

        if test $maxvalue

        then

              if test $1 –gt $maxvalue

              then

                      maxvalue=$1

              fi

          else

               maxvalue=$1

          fi

          shift

    done

    return $maxvalue

    }

   max $*

   echo "Max Value is :$maxvalue"

   #end

执行结果:

$maxvalue 239 32 78 7 60 20 150 345 3

Max Value is :345

3.填写执行结果

s=0;i=1

while test $i –le 5

do

let s=$s+$i*$i

let i=$i+1

done

echo "s= $s"

一组命令集或语句形成的可用块称为shell函数

练习:

 step1   在脚本程序中我们首先定义一个yes_or_no函数:

Step2:接下的是这个程序的主要部分:

任务一:给下面的程序添加注释

任务二:设计一个打字训练游戏。要求:

1.主菜单功能为当用户输入“1”,练习输入数字; 输入   “2”,练习输入字母;输入q则退出;当有其他输入提醒用户重新输入。

2.给出待输入的字符串,待用户输入后判断其是否正确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值