linux使用shell函数扩充命令,Linux Shell系列教程之(十五) Shell函数简介 | Linux大学...
发布日期:2021-06-24 12:27:35 浏览次数:2 分类:技术文章

本文共 1618 字,大约阅读时间需要 5 分钟。

摘要

函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高。

高级语言都支持函数,Shell也不例外。今天就为大家介绍下Shell中函数相关用法。

函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高。

高级语言都支持函数,Shell也不例外。今天就为大家介绍下Shell中函数相关用法。

32064838820e4e39d9b7f41696c82652.png

一、Shell函数的语法

因为函数是脚本类语言,在执行时是逐行执行的,因此,Shell 函数必须先定义后使用。

Shell 函数的定义格式如下:

[ function] funname [()]

{

command;

[returnint;]

}

说明:function关键词是可选项,可加可不加。

大括号内饰函数体,最后是返回值,可以加【return】关键词来指定函数返回内容,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)。

二、Shell函数使用举例

接下来我们还是通过例子来学习下Shell函数的运用。

示例1:

#!/bin/bash

# author:Linux大学

# url:www.linuxdaxue.com

#date:2016-06-01demo(){echo "这是我的第一个 shell 函数!"}echo "-----函数开始执行-----"demoecho "-----函数执行完毕-----"

说明:demo是一个函数的定义,函数体只有一句:echo "这是我的第一个 shell 函数!"

然后通过函数名来调用函数。

程序输出:

-----函数开始执行-----这是我的第一个 shell 函数!

-----函数执行完毕-----

这个例子并没有体现函数的入参等使用,接下来给大家介绍下Shell中函数的传参方法。

三、Shell函数参数处理

在Shell中,调用函数时可以向其传递参数。

在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数,$0代表脚本本身。

Shell函数参数处理例子

示例2:

我们再看一个例子:

#!/bin/sh#Author:Linux大学

#url:http://www.linuxdaxue.com

#date:2016-06-01

functionfSum()

{echo "入参为:"$1,$2return $(($1+$2))

}

fSum5 7total=$(fSum 3 2)echo "Return :"$total,$?

这个定义了一个计算参数和的函数,函数可以通过$1,$2这种形式来获取入参值,然后通过$(($1+$2))这种形式来将两值相加,并返回结果。

调用时,也可以通过括号的形式来调用,Shell会调用单括号里面的命令。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。

输出:

入参为:5,7Return :入参为:3,2,5

注意:

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

函数中用到的特殊字符

另外,还有几个特殊字符用来处理参数:

参数

说明

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数

$$

脚本运行的当前进程ID号

$!

后台运行的最后一个进程的ID号

$@

与$*相同,但是使用时加引号,并在引号中返回每个参数。

$-

显示Shell使用的当前选项,与set命令功能相同。

$?

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

好了,有关Shell函数的相关知识先为大家介绍到这里,Shell中的函数非常强大,在此不再展开讲,希望大家能够自己多多练习,熟练掌握。

更多Linux Shell教程请看:Linux Shell系列教程

转载地址:https://blog.csdn.net/weixin_32697149/article/details/116964967 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:putchar(c1)在C语言中表示,C语言中的getchar和putchar详解
下一篇:linux定时任务案例,Linux定时任务案例

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月07日 10时51分21秒