Shell 编程 4 — 函数、变量作用域、数组详解
概述
Day23 讲解 Shell 函数的三种定义格式、参数传递、返回值机制(return vs echo)、四种变量作用域(局部/全局/环境/系统级)、数组进阶操作(长度、切片、追加、删除、遍历、替换)与关联数组。
核心内容
函数
- 三种定义格式:
function f() {}/f() {}/function f {} - 参数:通过
$1、${10}等位置变量获取 return:返回状态码 0-255,用$?获取echo:返回数据,用$()捕获
变量作用域
| 作用域 | 关键字 | 可见范围 |
|---|---|---|
| 局部 | local | 函数内 |
| 全局 | 不加修饰 | 当前 bash 进程 |
| 环境 | export | 当前进程 + 子进程 |
| 系统级 | 写入配置文件 | 所有登录会话 |
优先级:局部 > 全局 > 环境
数组
${#arr[@]}长度、${!arr[@]}所有索引arr+=(新元素)追加、unset arr[索引]删除- 关联数组:
declare -A,支持字符串键名 - 作为函数参数:
func "${arr[@]}"展开传递
关联
- 前驱:Shell 编程 3
- 后续:Shell 编程 5