• shell->一个经典的shell脚本结构


      shell脚本类常用的条件分支判断是if,case。但是也可以用其他的方式来实现,如下脚本文件名字为mfc。其中每一个独立的函数都是一个分支,函数上的注释即是该函数的说明信息。

     1 #!/bin/sh
     2 
     3 # fun1:   note: the first test function
     4 # fun1: usage1: mfc fun1
     5 fun1()
     6 {
     7     echo "inner function"
     8 }
     9 
    10 # fun2:   note: the second test function
    11 # fun2: usage1: mfc fun2 arg1 arg2
    12 fun2()
    13 {
    14     echo "function: $1 $2 $3 $4"
    15 }
    16 
    17 _debug_()
    18 {
    19     echo "inner function"
    20 }
    21 
    22 # help: Give 'mfc help <function>' for more details.
    23 help ()
    24 {
    25     [ -z "$2" ] && {
    26         echo "Usage: mfc <function> [args1...n]"
    27         echo "Available functions:-"
    28         cat $0 | grep () | cut -d'(' -f1 |grep -v "_*_" | awk '{ print "	"$1 }'
    29         echo "Give 'mfc help <function>' for more details."
    30     } || {
    31         cat $0 | grep -w $2: | cut -d':' -f2-
    32     }
    33 }
    34 
    35 [ -n "$1" ] && {
    36     name="$1"
    37     shift
    38     $name $name $@ || >&-
    39 } || help

    执行效果如下:

    # ./mfc 
    Usage: mfc <function> [args1...n]
    Available functions:-
            fun1
            fun2
            help
    Give 'mfc help <function>' for more details.
    # ./mfc help
    Usage: mfc <function> [args1...n]
    Available functions:-
            fun1
            fun2
            help
    Give 'mfc help <function>' for more details.
    # ./mfc help fun1
       note: the first test function
     usage1: mfc fun1
    # ./mfc help fun2
       note: the second test function
     usage1: mfc fun2 arg1 arg2
    # ./mfc fun1
    inner function
    # ./mfc fun2 param1 param2 param3
    function: fun2 param1 param2 param3
    # 
  • 相关阅读:
    动态水母
    jquery封装的方法
    近千部最新英文读物(word 格式)及下载阅读方法
    best tanks
    System Analysic utility tools
    高级商务英语(BEC)阅读题应试指南
    “牛”人是怎样学习的
    领悟
    BEC高级商务英语考试应试技巧指南
    因特网上的英语学习资源
  • 原文地址:https://www.cnblogs.com/aimmiao/p/12107472.html
Copyright © 2020-2023  润新知