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

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

 

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

 



目录
相关文章
|
13天前
|
存储 安全 Linux
|
15天前
|
Linux Shell 数据安全/隐私保护
|
15天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
19天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
1月前
|
Shell Linux C语言
Shell 函数
10月更文挑战第4天
22 7
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
66 12
|
1月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
35 1
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余