MST
星途 面试题库

面试题:Bash变量作用域相关问题

在Bash脚本中,如何定义一个局部变量和一个全局变量?请举例说明它们作用域的区别。
39.7万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试

定义局部变量

在函数内部使用 local 关键字定义局部变量,示例如下:

#!/bin/bash

my_function() {
    local local_variable="This is a local variable"
    echo $local_variable
}

my_function
# 尝试在函数外部访问局部变量,将不会输出任何内容
echo $local_variable 

定义全局变量

直接定义变量就是全局变量,示例如下:

#!/bin/bash

global_variable="This is a global variable"

my_function() {
    echo $global_variable
}

my_function
# 在函数外部也能访问全局变量
echo $global_variable 

作用域区别

  • 局部变量:仅在定义它的函数内部有效,函数执行完毕后,局部变量就会消失,在函数外部无法访问。如上面第一个示例中,在 my_function 外部访问 local_variable 不会有输出。
  • 全局变量:在整个脚本文件范围内都有效,无论是在函数内部还是外部都可以访问和修改。如上面第二个示例中,在 my_function 内部和外部都能访问并输出 global_variable 的值。