shell 入参和默认变量
shell 脚本通过位置参数接收外部输入,$0 表示脚本名,$1、$2 等表示依次传入的参数。除位置参数外,还有 $#、$@、$*、$$、$?等默认变量,分别表示参数个数、参数列表、进程 ID 和上一条命令的退出状态。
shell 脚本通过位置参数接收外部输入,$0 表示脚本名,$1、$2 等表示依次传入的参数。除位置参数外,还有 $#、$@、$*、$$、$?等默认变量,分别表示参数个数、参数列表、进程 ID 和上一条命令的退出状态。
本文系统整理 shell 变量的用法:从变量定义与 declare 类型声明,到 $0、$#、$$ 等系统变量,再到 ${name#pattern} 等引用与截取技巧、变量替换、默认值处理以及单双引号的区别。文末附有常用变量操作命令的速查总结表,适合作为日常脚本编写的参考手册。
在 shell 中执行命令并捕获其输出有多种写法:反引号、$() 命令替换、$(()) 算术计算、通过变量间接执行命令,以及用 eval 执行包含多条命令的字符串。本文对这五种方式逐一给出示例。
本文介绍 shell 脚本中的条件分支:如何利用命令返回值 0 判断执行结果,if/elif/else 的写法,多条件的组合方式(-o、-a、||、&&),以及 case 分支的语法。文末总结了 [] 空格、then 关键字、$?易变等常见注意事项。
bash 字符串操作是脚本编写的核心技能。本文系统梳理字符串的定义与拼接、长度获取、按位置和模式截取(#、##、%、%%)、替换、查找、用 IFS 分割为数组、比较操作符、=~ 正则匹配与 BASH_REMATCH 提取,以及获取文件名/扩展名、路径处理等实用示例。