Linux-Shell脚本编程-学习-8-函数

简介: 在这章往后的学习中,我讲尽可能详细的讲书中讲到的都记录到这里,以便以后方便查看。

什么是函数,函数就是一段代码,这段代码可以在我们需要的位置调用,那么这段代码就叫做函数。



在Shell中,定义一个函数有两种方法。


1. 使用关键字 function


function name


{

}



#!/bin/bash


function func1

{

       echo " this is a function"


}


count=1

while [ $count -le 5 ]

do

       func1

       count=$[$count +1 ]

done

echo " the loop end"


这种方式有种Shell 的感觉,那么第二种就有一种我们普通常见的函数的感觉了



name()


{

}



#!/bin/bash


function func1

{

       echo " this is a function"


}

func2()

{

       echo " this is the function two"

}



count=1

while [ $count -le 5 ]

do

       func1

       func2

       count=$[$count +1 ]

done

echo " the loop end"


这里在定义函数的时候要注意,如果我们在定义函数前使用了函数。那么就会提示我们找不到这个命令了




#!/bin/bash


function func1

{

       echo " this is a function"


}



count=1

while [ $count -le 5 ]

do

       func1

       func2

       count=$[$count +1 ]

done

func2()

{

       echo " this is the function two"

}

echo " the loop end"

如果是这样的话,那么func2就会报错了

image.png


#!/bin/bash


function func1

{

       echo " this is a function"


}



func1()

{

       echo " this is the recover function"

}



count=1

while [ $count -le 5 ]

do

       func1

       count=$[$count +1 ]

done

echo " the loop end"


image.png

image.png

image.png

这样,我们的函数1就会被覆盖,所在Shell脚本中定义函数的时候一定要注意名字的唯一性



和我们普通编程一样,Shell脚本中的函数也可以有返回值,bash shell会把函数当做一个小型的脚本,运行结束时会返回一个退出状态码。有三种不同的方法可以来为函数生成退出状态码


1. 使用默认的退出状态码


默认的状态码是函数中最后一条命令返回的退出状态码。在函数结束后,使用标准的$?变量来决定函数的退出状态码




#!/bin/bash


function func1

{

       echo " this is a function"


}



func1()

{

       echo " this is the recover function"

}



count=1

while [ $count -le 5 ]

do

       func1

       echo " the function exit status is: " $?

       count=$[$count +1 ]

done

echo " the loop end"

image.png

2. 使用return来返回



#!/bin/bash


function func1

{

       value=88

       echo " this is a function"

       return $value

}


:<

func1()

{

       echo " this is the recover function"

}

!


count=1

while [ $count -le 5 ]

do

       func1

       echo " the function exit status is: " $?

       count=$[$count +1 ]

done

echo " the loop end"

image.png

不过这个的不好支持就在于这里返回的状态码只能是0-255

 

要向返自己的内容,就需要用到第三种方式

文本输出 echo

这里就不哔哔了,今天先到这。等有时间在看

 

后面是在函数中使用变量了

 



目录
相关文章
|
6天前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
30 1
|
28天前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
8天前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
8天前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
14 1
|
13天前
|
Shell Linux C语言
Shell 函数
10月更文挑战第4天
18 7
|
26天前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
52 12
|
20天前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
25 1
|
21天前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
24 2
|
28天前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
7天前
|
Linux 开发工具
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)