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中的

  • 相关阅读:
    Linux命令之 文件归档管理
    C#总结项目《影院售票系统》编写总结完结篇
    C#总结项目《影院售票系统》编写总结三
    C#中MD5加密
    C#中的序列化与反序列化
    C#总结项目《影院售票系统》编写总结二
    C#总结项目《影院售票系统》编写总结一
    java多线程与线程并发四:线程范围内的共享数据
    java多线程与线程并发三:线程同步通信
    java多线程与线程并发二:线程互斥
  • 原文地址:https://www.cnblogs.com/lyali/p/11376136.html
Copyright © 2011-2022 走看看