Linux - 函数声明

Linux - 函数声明 首页 / Linux入门教程 / Linux - 函数声明

在本章中,我们将详细讨论Shell函数。函数使您可以将脚本分解成多个小的代码函数,有利于代码复用。

创建函数

要声明一个函数,只需使用以下语法-

function_name () { 
   list of commands
}

函数的名称为 function_name ,这就是您将要从脚本其他位置调用它的名称。函数名称后必须带有括号,并在括号内包含命令列表。

函数示例

以下示例显示了功能的使用-

#!/bin/sh

# 定义函数
Hello () {
   echo "Hello Learnfk"
}

# 调用函数
Hello

执行后,您将收到以下输出-

$./test.sh
Hello Learnfk

函数参数

您可以定义一个接收参数的函数。这些参数将由 $1 , $2 等表示。

下面是一个示例,其中我们传递了两个参数 Learnfk 和 Toolfk ,然后在函数中捕获并打印这些参数。

#!/bin/sh

# 定义函数
Hello () {
   echo "Hello World $1 $2"
}

# Invoke your function
Hello Learnfk Toolfk

执行后,您将收到以下输出-

$./test.sh
Hello World Learnfk Toolfk

函数返回值

如果从函数内部执行 exit 命令,则其作用不仅是终止函数的执行,而且还终止调用该函数的Shell程序的执行。

相反,如果您只想终止函数的执行,则可以通过一种方法来定义函数。

根据情况,您可以使用 return 命令从函数中返回任何值-

return code

以下函数返回值10-

无涯教程网

#!/bin/sh

# 定义函数
Hello () {
   echo "Hello World $1 $2"
   return 10
}

# 调用函数
Hello Learnfk Toolfk

# 获取上一条命令返回的值
ret=$?

echo "Return value is $ret"

执行后,您将收到以下输出-

$./test.sh
Hello World Learnfk Toolfk
Return value is 10

嵌套函数

函数的更有趣的功能之一是它们可以调用自己以及其他函数。调用自身的函数称为 递归函数 。

以下示例演示了两个函数的嵌套-

#!/bin/sh

# Calling one function from another
number_one () {
   echo "This is the first function speaking..."
   number_two
}

number_two () {
   echo "This is now the second function speaking..."
}

# Calling function one.
number_one

执行后,您将收到以下输出-

This is the first function speaking...
This is now the second function speaking...

Prompt 函数调用

您可以将常用功能的定义放在 .profile 中。这些定义在您每次登录时都可用,并且可以在命令提示符下使用它们。

或者,您可以将定义分组到一个文件中,如 test.sh ,然后通过键入以下内容在当前shell中执行该文件:

$. test.sh

这具有导致读取 test.sh 内部定义的函数并将其定义到当前shell的效果,如下所示-

$number_one
This is the first function speaking...
This is now the second function speaking...
$

要从Shell中删除函数的定义,请使用带有 .f  选项的unset命令。此命令还用于将变量的定义删除到Shell程序。

$unset -f function_name

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学大数据 -〔李智慧〕

玩转Git三剑客 -〔苏玲〕

性能工程高手课 -〔庄振运〕

图解 Google V8 -〔李兵〕

深度学习推荐系统实战 -〔王喆〕

物联网开发实战 -〔郭朝斌〕

操作系统实战45讲 -〔彭东〕

Tony Bai · Go语言第一课 -〔Tony Bai〕

大型Android系统重构实战 -〔黄俊彬〕

好记忆不如烂笔头。留下您的足迹吧 :)