码迷,mamicode.com
首页 > 其他好文 > 详细

第五周学习总结

时间:2019-06-16 23:17:40      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:com   cti   博客   输出   就会   斐波那契   代码   ash   递归   

第五周学习总结

  因为这周我们绝大部分时间是学的shell脚本进阶,所以这周我的博客内容主要是有关shell脚本函数。

一 我对函数的个人理解

  编写shell脚本的时候,我们经常会发现在多个地方使用了相同的代码。如果相同的代码只是很小的一段,一般也就是复制一下。但是如果遇到在shell脚本中我们需要重写大块代码段时,我们就不能重新打一遍甚至多遍,非常浪费时间。这时我们就需要bash shell提供的用户自定义函数功能来解决这一问题。

二 创建函数的各种方法

创建函数一共有四种方法,其中的三种是在脚本内部创建,最后一种是在命令创建。
第一种

function name (){
    commands;
}

第二种

function name {
    commands;
}

第三种

name (){
    commands;
}

第四种

[root@magedu ~]# function chufa { echo $[ $1 / $2 ]; }
[root@magedu ~]# chufa 10 2
5

三 调用函数

当我们需要使用函数时,只需要将函数名打出即可

#!/bin/bash
name (){
    echo magedu
}

name

执行这个脚本 就会直接输出 magedu
四 向函数传递函数
1,我们也可以向函数传递一些变量,我们在执行函数的时候,将参数和函数放在同一行即可,参数之间,参数和函数之间都需要有一个空格。

#!/bin/bash
name (){
    echo $1
    echo $2
}

name 1 2

直接输出的结果就是
1
2
2,我们还可以向函数传递数组

function sz (){
    szz=(`echo "$*"`)
    echo ${szz[*]}
}
array=(1 2 3 4 5)
sz ${array[*]}

五 函数的递归
斐波那契数列

[root@magedu ~]# vim fibonacci.sh
#!/bin/sh
fibonacci(){
    if [ $1 -eq 0 ];then
       echo 0
    elif [ $1 -le 1 ];then
       echo 1
    else
       echo $[$(fibonacci $[$1-1])+$(fibonacci $[$1-2])]
    fi
}
fibonacci $1

第五周学习总结

标签:com   cti   博客   输出   就会   斐波那契   代码   ash   递归   

原文地址:https://blog.51cto.com/14322573/2409768

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