Linux 中的 Bash 函数是什么以及如何使用它?

假设您正在编写一个复杂的bash 脚本来自动执行 Linux 系统上的一系列任务。您注意到,随着脚本的增长,脚本的某些部分会重复多次相同的代码块。为此,您可以将重复部分包装在称为“函数”的块内并重用它,从而使整体代码更加精简和组织。在本文中,我们将讨论什么是 bash 中的函数以及如何使用它来自动化 Linux 任务。

Linux 中的 Bash 函数是什么?

Bash 函数是 bash 脚本中可重用的代码块,可以将它们组合在一起并命名以避免重复编写相同的代码。与其他编程语言非常相似,您可以选择在 bash 脚本中使用函数。函数可帮助您将整个脚本组织成更小的模块,使您的代码更具可读性、易于调试和可重用。换句话说,函数就像脚本中的脚本。

如何在 Bash 中定义函数?

现在您已经对什么是 bash 函数有了基本的了解,让我们看看如何定义它们以使我们的 Linux 工作流程变得更加容易。定义 bash 函数的基本语法是:

<function_name>(){
    <statements_to_execute>
}

您甚至可以使用上述语法的单行版本:

<function_name>() { <statements_to_execute>; }

关于定义 bash 函数需要记住的一些要点包括:

  • 写在 {} 内的每条语句和命令称为函数体。对于函数名称,您可以使用除关键字之外的任何名称,关键字是为不同命令保留的特定单词。
  • 与传统的 bash 脚本不同,除非您调用函数,否则它们不会被执行。要执行函数,您需要使用函数名称。
  • 使用单行版本时,您编写的每个命令都必须用分号“;”分隔。
  • 函数内部声明的所有变量只能在函数体内访问。

让我们看一个基于上述语法的基本示例。首先在Linux 文本编辑器中创建一个新文件,并在其中写入以下代码:

#!/bin/bash

hello_world () {
   echo 'hello, world'
}

hello_world
如何在 Linux 中定义 bash 函数的示例

建议使用与函数名称相同的名称保存文件。要调用该文件,只需在 shell 提示符中写入函数名称并按 Enter 键即可。

./hello_world
执行定义的函数

如何将参数传递给 Bash 函数

有时,您可能需要使用一些自定义值或使用您创建的函数来处理用户输入值。要将参数传递给 bash 函数,只需在将函数作为 Linux shell 变量调用后在函数名称后面提及它们即可。至于在函数内部使用参数,请将它们放在$<argument_position>、like $1$2below 等后面。例如:

#!/bin/bash

greeting () {
  echo "Hello $1"
}

greeting "Beebom"
bash 功能的争论

要调用,请使用以下命令:

./greeting.sh
Ver el resultado de pasar argumentos 个性化 a la función bash

如何从 Bash 函数返回值

与其他编程语言不同,在 bash 中,您不能从函数返回值。您只能将 bash 函数的返回状态发送给调用者,其中的数字范围为 0 到 255,其中 0 表示成功,任何其他数字表示 Linux 系统错误/失败。例如,在Linux 的 nano 编辑器中复制此代码。

#!/bin/bash

greeting () {
    echo "Hello $1"
   
 return 10
}

greeting "Beebom"
echo The return value is $?

从函数返回自定义返回状态

当您调用上述脚本时,您将得到类似的输出以及值 10,表示发生了失败或错误。

执行上面的函数

Bash 函数中的变量作用域

变量的范围是指可以在 bash 中使用变量的代码部分。范围主要分为两部分——全局范围和局部范围。通过全局作用域,该变量可以在任何地方使用,包括直接在 shell 提示符中使用。局部作用域意味着变量不能在声明它的块之外使用。

在 bash 函数内使用“local”关键字声明的每个变量都将属于函数体的局部范围,并且不能在函数体之外使用。同样,全局变量可以从 bash 脚本中的任何位置访问,没有任何限制。下面的例子会清楚地说明:

#!/bin/bash

global_var="I am global"

function display_global() {
    echo "Inside function: $global_var"
    local local_var="I am local"
    echo "Inside function: $local_var"
}

display_global
echo "Outside function: $global_var"
echo "Outside function: $local_var"
bash script to show the difference between local and global variables

执行上述脚本后,您将看到以下输出:

viewing the output of local and global variables in bash function via the Linux shell

在 Bash 中使用函数的最佳实践

Bash 函数是强大的工具,可以增强 Linux 中 bash 脚本的结构、可维护性和可重用性。遵循以下最佳实践来使用 bash 中的函数可以极大地改进我们的工作流程:

  1. 保持函数简短且集中:尽量使您编写的函数简短、简洁并集中于执行单个任务。这将提高 bash 脚本的整体可读性和可维护性。
  2. 使用描述性名称:使用简短但描述性的名称来反映函数的用途作为函数名称。清晰且有意义的名称使代码更加不言自明,使您以及其他开发人员能够维护和构建代码。
  3. 添加注释:不仅对于 bash 脚本,而且对于您使用的所有不同类型的编程语言,都可以使用注释来描述代码的哪一部分在做什么。
  4. 重用函数:尽可能重用函数,以避免再次重写相同的代码。
  5. 避免函数名称冲突:避免使用与内置命令和其他命令行工具同名的函数。

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注