shell-bash脚本编程之函数应用

  函数-模块化可编程工程

函数:function:功能组件

       可被调用。函数有函数名

                             函数出现的地方,而自动被替换成函数定义代码

     函数定义

                语法一:funName() {

                             函数体

                          }

                 语法二: function FuncName{

                              函数体

                            }

 函数有两种返回值

      正常返回值为数据:函数中打印语句:如echo或print

                                  函数中命令的执行结果

      执行状态返回值:

                取决于函数中执行的最后一句话

                自定义返回值:return Num

  函数可以接收参数

          在函数体中可以使用类似脚本调用位置参数的参数

      $1  $2....$#

                  function main表示主函数

                             function main{

                                函数体

                                       }

#!/bin/bash

numSum(){

read -p " Enter tow number:" nuA Nub

echo "$[$nuA+$Nub]"

}

numSum


函数中调用参数

#!/bin/bash
#
funcN1()
  {
     [ $# -lt 1 ] && echo " Null" &&  exit 0
        grep "^$1\>" /etc/passwd | cut -d: -f3,7
           }
while true  ; do
    read -p " Plz Enter a Username: "  userName
        [ "$userName" == "quit" ] && echo "exit ..."  && exit 3
     if  ! id $userName &> /dev/null ;then
           echo " Wrong such user...please again"
     fi
  funcN1    $userName
done  

 

 

     函数使用变量的变量域:

 

                   local 变量   :表示局部变量

                        在函数中使用了主程序的声明的变量,重新赋值会直接修改主程序变量。如果不希望函数中的变量影响主函数都使用local进行修饰。

                 在函数中使用了主程序中没有声明的变量,在函数执行结束后即消失。无论是否使用了local修饰符

      

函数体调用参数,先从本函数中调用,如果没有就从外层函数中调用,再到主程序中调用,如果没有就调用bash默认函数,

       调用参数先找函数自身函数

       定义  如 declare 只在函数体中有效,直接赋值对全局有效

#!/bin/bash
testNoe()

   {
     echo "in: $1"
            }
        testNoe ind
    echo "out:$1"
如果把脚本的所有参数都传送给某函数时使用$*,如上#testNoe $*

 

  • blogger

版权所有:oldboy ---- 《shell-bash脚本编程之函数应用
本文地址:http://www.bokeren.cc/post-72.html
除非注明,文章均为 《悠然生活的平淡博客-博客人linux运维之家》 原创转载请注明本文地址,谢谢。


相关推荐

你肿么看?

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。