面试题答案
一键面试模块化设计实现
- 在
module.sh
中定义函数和变量:
#!/bin/bash
# 定义变量
var="初始值"
# 定义函数
func() {
echo "这是func函数"
}
- 在
main.sh
中引入module.sh
并调用函数和操作变量:
#!/bin/bash
# 引入module.sh
source module.sh
# 调用func函数
func
# 获取并输出var变量值
echo "var的当前值: $var"
# 修改var变量值
var="新值"
echo "修改后var的值: $var"
变量作用域问题注意点
- Bash中没有严格的私有变量概念:在
module.sh
中定义的变量var
,一旦通过source
引入到main.sh
,就如同在main.sh
中直接定义一样,在main.sh
中可以直接访问和修改。 - 避免变量名冲突:由于没有严格的作用域隔离,在不同脚本中定义变量时要注意避免变量名冲突,建议采用有意义的命名前缀等方式区分不同模块的变量。