zhcn 技术 手机 Linux 中的 Bash 函数是什么以及如何使用它们?

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

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

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

Linux 上的 Bash 函数有哪些?

Bash 函数是 bash 脚本中可重用的代码块,可以对其进行分组和命名,以避免重复编写相同的代码。与其他编程语言一样,您可以选择在 bash 脚本中使用函数。函数允许您将整个脚本组织成小模块,使您的代码更易于阅读、调试和重用。换句话说,函数就像脚本中的脚本。

Linux 中的 Bash 函数是什么以及如何使用它们?
Linux 中的 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

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

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

如何将参数传递给 Bash 函数

在某些情况下,您可能需要使用自定义值或使用您编写的函数来处理用户输入的值。要将参数传递给 bash 函数,只需将函数作为 Linux shell 变量调用,然后在函数名称后指定参数即可。在函数中使用参数时,请将它们放在$<argument_position>中,例如下面的$1$2 。例如:

 #!/bin/bash

greeting () {
  echo "Hello $1"
}

greeting ""

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

 ./greeting.sh 
Linux 中的 Bash 函数是什么以及如何使用它们?
Linux 中的 Bash 函数是什么以及如何使用它们?

如何从 Bash 函数返回值

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

 #!/bin/bash

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

greeting ""
echo The return value is $?

当您调用上述脚本时,您将看到类似的输出,其中值 10 表示发生故障或错误。

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

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 中使用函数的最佳实践

Bash 函数是强大的工具,可以增强 Linux 上 bash 脚本的结构、可维护性和可重用性。请遵循以下最佳实践在 bash 中使用函数:这极大地改善了您的工作流程。

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

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

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

Linux 上的 Bash 函数有哪些?

Bash 函数是 bash 脚本中可重用的代码块,可以对其进行分组和命名,以避免重复编写相同的代码。与其他编程语言一样,您可以选择在 bash 脚本中使用函数。函数允许您将整个脚本组织成小模块,使您的代码更易于阅读、调试和重用。换句话说,函数就像脚本中的脚本。

Linux 中的 Bash 函数是什么以及如何使用它们?
Linux 中的 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

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

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

如何将参数传递给 Bash 函数

在某些情况下,您可能需要使用自定义值或使用您编写的函数来处理用户输入的值。要将参数传递给 bash 函数,只需将函数作为 Linux shell 变量调用,然后在函数名称后指定参数即可。在函数中使用参数时,请将它们放在$<argument_position>中,例如下面的$1$2 。例如:

 #!/bin/bash

greeting () {
  echo "Hello $1"
}

greeting ""

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

 ./greeting.sh 
Linux 中的 Bash 函数是什么以及如何使用它们?
Linux 中的 Bash 函数是什么以及如何使用它们?

如何从 Bash 函数返回值

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

 #!/bin/bash

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

greeting ""
echo The return value is $?

当您调用上述脚本时,您将看到类似的输出,其中值 10 表示发生故障或错误。

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

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 中使用函数的最佳实践

Bash 函数是强大的工具,可以增强 Linux 上 bash 脚本的结构、可维护性和可重用性。请遵循以下最佳实践在 bash 中使用函数:这极大地改善了您的工作流程。

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