加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell函数

发布时间:2020-12-16 01:43:43 所属栏目:安全 来源:网络整理
导读:函数的写法格式: 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)? ?

函数的写法格式:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读