码迷,mamicode.com
首页 > 系统相关 > 详细

shell函数

时间:2019-08-19 21:11:25      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:判断语句   echo   系统   The   bin   返回   问题:   斐波那契   参数   

1、函数介绍function
    为了避免代码重复使用,我们一般通过函数编写代码块,而这一个代码块用来实现某种功能。
    且,这个功能在后面的代码中,会重复调用;  
2、函数的语法格式
(1)函数的写法格式:
      function check_cpu {
          cat /proc/cpuinfo
      }
      ls /etc/
      check_cpu 【不调用函数,则函数体中的命令是不会执行的;在哪里调用,函数体中的命令就在那里执行】

(2)*fun_name() {
        函数体
        $1 $2 ... $10
    }
    fun_name 1 2 3
    :wq
    function.sh 4 5 6 7 8 9 10 11 12 13 14
3、函数的调用  -- return
函数返回值
   (1)当函数中指定了判断语句的时候,我们默认要返回一个错误的结果,但是最近一条命令确实正确的,这时候,我们需要通过return返回一个我们需要的错误状态码;
   (2)函数结束的时候,我们需要指定一个return的正确返回码; 如果使用在循环语句中,return会跳出循环;
4、函数接受参数
    函数 变量
    和普通的命令一样
    只需要注意,在函数接受参数的时候,不会使用外部的传参,而是以脚本内部的参数为准,  
5、函数中的变量
(1)本地变量
        local 变量名=xxx
        本地变量只在本函数内部生效

(2)局部变量
        脚本内部的变量
(3)环境变量
        在整个Linux系统的bash中生效 

TEST() {
       local i=9
       let i++
       echo i
       exit 0
}
i=1
TEST
echo i

  (4) 关于脚本执行的问题:
      bash 的方式来执行 -- #!/bin/bash
         bash所执行的脚本中定义的变量,在当前shell的子shell中;
      全路径或者相对路径的方式来执行; -- 须有授权执行权限;
      source 脚本文件 或者 . 脚本文件
           source这种方式来执行脚本的时候,内部变量所定义的值是在当前shell中的;
6、函数递归
    n的阶乘  

n! = n(n-1)!
$[$1*  $[ fac -1]]
fact(){
     if [ $1 -lt 1 ];then
         echo 1  //一定要写成1
     else
          i=$[$1*$(fact $[$1-1])]  //  n(n-1)
          echo $i
      fi
}
(n-1) = (n-1)(n-2)!
2!=2*1!
fac(){
        $[fac -1 ]
}
fac 5

    兔子数列,斐波那契数列 

#!/bin/bash
#
fab(){
        if [ $1 -eq 1 ];then
            echo 1
        elif [ $1 -eq 2 ];then
            echo 1
        else
            echo $[$(fab $[$1-1])+$(fab $[$1-2])]
        fi
}
fab 7

shell函数

标签:判断语句   echo   系统   The   bin   返回   问题:   斐波那契   参数   

原文地址:https://www.cnblogs.com/www-k/p/11379500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!