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中的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |