Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • Shell脚本笔记
            • Shell脚本介绍
              • Shell语法
                • Shell格式化输出
                  • Shell格式化输入
                    • Shell变量
                      • Shell数组
                        • Shell运算
                          • Shell流程控制---if判断语句
                            • Shell流程控制---for循环语句
                              • Shell流程控制---while循环语句
                                • Shell流程控制---until循环语句
                                  • Shell流程控制---case分支语句
                                    • Shell函数
                                      • 函数介绍
                                        • 函数的优点
                                          • 函数的语法
                                        • Shell正则表达式
                                          • Shell对文本的搜索---grep命令
                                            • Shell对文件的操作---sed命令
                                              • Shell对输出流的处理---awk命令
                                                • Shell监控脚本
                                                  • Shell脚本---lamp环境安装

                                                Shell函数

                                                author iconkarincalendar icon2021年4月9日category icon
                                                • 教程
                                                tag icon
                                                • shell
                                                timer icon大约 1 分钟

                                                此页内容
                                                • 函数介绍
                                                  • 函数的优点
                                                  • 函数的语法

                                                # 函数介绍

                                                写代码的时候,我们很多人习惯从头写到结束,完成以后再一起测试。但是到测试阶段才发现:错误一大堆,上帝啊!弄死我吧!

                                                为了解决这个问题,建议大家把代码模块化,一个模块实现一个功能,哪怕是一个很小的功能都可以,这样的话我们写代码,逻辑上就会比较简单,代码量比较少,排错简单,这也就是函数的好处。

                                                # 函数的优点

                                                代码模块化,调用方便,节省内存 代码模块化,代码量少,排错简单 代码模块化,可以改变代码的执行顺序

                                                # 函数的语法

                                                # 定义函数

                                                语法一:

                                                函数名 () {
                                                	commands
                                                	return N
                                                }
                                                
                                                1
                                                2
                                                3
                                                4

                                                语法二:

                                                function 函数名{
                                                	commands
                                                	return N
                                                }
                                                
                                                1
                                                2
                                                3
                                                4

                                                补充:

                                                return 在 shell 中意义不大,可以省略不写。

                                                function 定义函数没有小括号 ( )。 定义好的函数默认不会执行,需要调用

                                                # 调用函数

                                                函数名
                                                
                                                1

                                                说明:直接在脚本中输入函数名,即可调用已定义的函数。

                                                实例

                                                [root@localhost ~ ]# vim fun.sh
                                                #!/bin/bash
                                                start () {
                                                echo "Apache start ............................... [OK]"
                                                }
                                                
                                                stop () {
                                                echo "Apache stop ............................... [FALIL]"
                                                }
                                                start
                                                start
                                                start
                                                stop
                                                stop
                                                stop
                                                stop
                                                [root@localhost ~ ]# bash fun.sh
                                                Apache start ............................... [OK]
                                                Apache start ............................... [OK]
                                                Apache start ............................... [OK]
                                                Apache stop ............................... [FALIL]
                                                Apache stop ............................... [FALIL]
                                                Apache stop ............................... [FALIL]
                                                Apache stop ............................... [FALIL]
                                                [root@localhost ~ ]# 
                                                
                                                1
                                                2
                                                3
                                                4
                                                5
                                                6
                                                7
                                                8
                                                9
                                                10
                                                11
                                                12
                                                13
                                                14
                                                15
                                                16
                                                17
                                                18
                                                19
                                                20
                                                21
                                                22
                                                23
                                                24
                                                25
                                                edit icon编辑此页open in new window
                                                上一页
                                                Shell流程控制---case分支语句
                                                下一页
                                                Shell正则表达式
                                                MIT Licensed
                                                Copyright © 2022 karin