zoukankan      html  css  js  c++  java
  • Shell之函数

    一、什么是函数

    函数就是将相同的代码变成定义成一个代码块,然后七个名字,调用时只需要调用名字即可。

    1、函数的优势

    • 节约代码量
    • 代码易读
    • 程序功能模块化

    2、函数语法

    # 简写
    函数名(){
      # 指令
      return 返回值
    }
    
    # 规范写法
    function 函数名(){
      # 指令
      return 返回值
    }

    3、函数执行

    • 无参数函数调用

    直接调用函数的名称即可,无需带小括号。

    • 有参数函数调用
    函数名 参数1 参数2 参数...

    (1)在函数体中位置参数($1、$2...、$#、$*、$?、$@)都可以是函数的参数

    (2)父脚本中的参数则临时的被函数参数隐藏或者覆盖

    (3)$0仍然是父脚本的名称

    (4)函数执行完毕后,原来的命令行参数会恢复

    二、实例

    (一)无参数实例

    1、普通方式

    #!/bin/sh
    t1(){
      echo "Hello World!"   
    }
    t1 #在脚本中调用函数

    上面的脚本中将函数与函数调用写在一起,更优的方式可以将函数与调用分开,可以再写一个调用函数的脚本。

    2、优化方式

    • 函数脚本(func2脚本)
    #!/bin/sh
    t1(){
      echo "Hello World!"   
    }
    • 调用函数脚本
    #!/bin/sh
    scripts_path=/project/scripts/function_scripts/func2
    [ -x $scripts_path ]  && . $scripts_path || exit
    t1

    (二)有参数实例 

    #!/bin/sh
    t1(){
      echo "$1"     
    }
    t1 $1

    通过下面进行调用即可,将脚本传参变成函数传参:

    [root@localhost function_scripts]# sh func3.sh bright
    bright
    作者:iveBoy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    whatweb tree
    testUrl
    ParseUrl
    whatweb wordpress.rb
    LeetCode: Binary Tree Level Order Traversal 解题报告
    LeetCode: Minimum Path Sum 解题报告
    Lintcode: Sort Colors II 解题报告
    LeetCode: Validate Binary Search Tree 解题报告
    LeetCode: Longest Common Prefix 解题报告
    LeetCode: Maximum Subarray 解题报告
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14364097.html
Copyright © 2011-2022 走看看