zoukankan      html  css  js  c++  java
  • 八使用Shell函数

    Shell脚本中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数

    使用函数的好处?

    使脚本代码更简洁,增强易读性
    提高Shell脚本的执行效率

    函数定义方法

     

    基本格式1

    function 函数名 {
       函数的功能体  
    }

    格式2

    函数名() {
       函数的功能体
    }

    注:定义函数名,不会被输出

    使用函数时的规则:

    先定义后调用;可以只定义不调用
    在同一个脚本里,函数名相同时,后定义生效
    函数名区分字母大小写
    在函数体内定义的变量是局部变量,只能在当前函数内使用
    在函数体外定义的变量是全局变量,全局变量所有函数都可以使用
    函数之间可以互相调用
    定义一次,可多次重用
    Bash调用函数时不会开启新的子Shell,会在现有的shell环境中执行该函数

    fun.sh脚本里定义函数sum.two(功能是输出数字10 20 相加的和,并输出计算结果)

    [root@localhost shell]# cat sum_two.sh
    #!/bin/bash
    sum_two(){
    sum=`expr 10 + 20`
    echo "10 +20 = $sum "
    }
    sum_two

    在脚本中建一个对2个整数求和的加法器

    [root@localhost shell]# cat funadder.sh 
    #!/bin/bash
    adder(){
      echo $(($1+$2))
    }
    adder 12 34
    adder 56 789 

    服务脚本中的函数

    适用于复杂的启动/终止控制操作
    方便在需要时多次调用

    递归调用示例

    Shell版的fork炸弹

    仅13个字符:.(){.|.& };.
    递归死循环,可迅速耗尽系统资源

    无限的生成新的进程,造成死机

    代码解析

    .()               #定义一个名为.的函数
    {                #函数块的开始标记
    .|.&           #在后台递归调用函数.
    ;              #函数块的结束标记
    .             #再次调用函数

    函数可以递归调用(函数自己调用自己)

    function函数 +case分支结构 给源码apache启动脚本

    apache指定安装目录/usr/local/httpd2,脚本名叫apached.sh

    答:

    写完脚本把apached.sh的权限改成x执行权限并拷贝到系统存储启动服务的目录/etc/init.d下并去掉后缀.sh

    然后把/etc/init.d/apached脚本加入到chkconfig的开启自启动服务中。

    1.进入到系统存储运行的目录

     

  • 相关阅读:
    aul 学习测试(测量)
    ubuntu12.04下一个samba、tftp、nfs构造
    Linux互斥和同步应用程序(一):posix线程和线程之间的相互排斥
    Cocos2d-x加速度计
    事务处理和并发控制
    【通过做专题研习Android】知识点:SharedPreferences
    数据结构 --- 单人名单
    安德鲁斯 建立与各种听众自己定义的ScrollView
    【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
    2013年第35周一
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8984273.html
Copyright © 2011-2022 走看看