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[@]}" 展开传递

关联