zoukankan      html  css  js  c++  java
  • shell函数

    函数的写法格式:

      function check_cpu{

        cat .proc.cpuinfo

      }

      ls /etc/

      check_cpu 【不调用函数,则函数体里的命令不会执行】

      fun_name(){

        函数体

        $1 $2 ... $10

      }

      fun_name 1 2 3

    练习:

    case 参数 in

    a)

    b)

    c)

    *)

    【case PAT 支持的格式:*任意内容 a|b)   支持文件通配符】

    1.脚本可以接受参数:start stop resatrt status

    2.如果参数非此四者之一,提示使用时候报错退出

    3.如果是start:则创建/etc/lock/subsys/SCRIPT_NAME,并显示“启动成功”

    4.如果是stop:则删除/var/lock/subsys/SCRIPT_NAME,并显示“删除成功”

    5.如果是restart:则先stop在start

    6.如果是status:存在显示running,不存在显示stop

    #!/bin/bash
    # Author: 埃希123
    # Blog: https://www.cnblogs.com/lyali/
    # Time: 2019-08-09 22:47:46
    # Name: hanshu1.sh
    # Version: v1.0
    # Description: This is a Script.
    
    start_1(){
            if [ -e /root/testd.sh ];then
                    echo "服务已经启动"
            else
                    touch /root/testd.sh
                    echo "服务启动成功"
            fi
    }
    stop_1(){
            if [ -e /root/testd.sh ];then
                    rm -f /root/testd.sh
                    echo "服务关闭成功"
            fi
    }
    status_1(){
            if [ -e /root/testd.sh ];then
                    echo "running"
            else
                    echo "stop"
            fi
    }
    ugage(){
            echo "start|stop|restart|status"
    }
    
    case $1 in
    start)
            start_1
            ;;
    stop)
            stop_1
            ;;
    restart)
            start_1
            stop_1
            ;;
    status)
            status_1
            ;;
    *)
            ugage
            ;;
    esac

    函数的调用  --  return

      函数的返回值

      当函数中指定了判断语句的时候,我们默认要返回一个错误的结果,但是最近一条命令缺点是正确的,这时我们需要通过return返回一个我们需要的错误状态码

      函数结束的时候,我们需要指定一个return的正确返回码

      return跳出循环

    函数接受参数

      函数变量和普通命令一样

      只需注意,函数在接受参数的时候,不会使用外部的传参,而是使用内部的参数为准

    函数中的变量

      本地变量

        local 变量名=xxx

        本地变量只在本函数内部生效

      局部变量

        脚本内部变量

      环境变量

        在整个Linux系统的bash中生效

    扩展:关于脚本执行的问题

      bash 的方式来执行 -- #!/bin/bash

        bash所执行的脚本中定义的变量,在当前shell的子shell中;

      全路径或者相对路径的方式执行  --  须又授权执行权限

      source脚本文件或.脚本文件

        source这种方式执行脚本文件的时候内部变量所定义的值是在当前shell中的

  • 相关阅读:
    CJOJ 1308 【HNOI 2002 】营业额统计 / CodeVS 1296 营业额统计(STL,二分)
    CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划)
    CJOJ 2482 【POI2000】促销活动(STL优先队列,大根堆,小根堆)
    CJOJ 2484 函数最小值 / Luogu 2085 函数最小值(STL优先队列,堆)
    POJ 2296 Map Labeler / ZOJ 2493 Map Labeler / HIT 2369 Map Labeler / UVAlive 2973 Map Labeler(2-sat 二分)
    Luogu 1111 修复公路(最小生成树)
    POJ 3683 Priest John's Busiest Day / OpenJ_Bailian 3788 Priest John's Busiest Day(2-sat问题)
    POJ 3207 Ikki's Story IV
    洛谷 P1456Monkey King
    洛谷 P1231教辅的组成
  • 原文地址:https://www.cnblogs.com/lyali/p/11376136.html
Copyright © 2011-2022 走看看