目录
第一篇-变量和语句
第二篇-字符串处理之常用操作
第三篇-字符串处理之转义字符和格式化输出
第四篇-字符串处理之通配符
第五篇-数组
第六篇-哈希表
第七篇-数值计算
第八篇-变量修饰语
第九篇-函数和脚本
第十篇-文件查找和批量处理
第十一篇-变量的进阶内容
第十二篇-[[-]]-的用法
第十三篇-管道和重定向
第十四篇-文件读写
第十五篇-进程与作业控制
第十六篇-alias-和-eval-的用法
第十七篇-使用-socket-文件和-TCP-实现进程间通信
第十八篇-更多内置模块的用法
第十九篇-脚本实例讲解
第二十篇-代码风格
第二十一篇-测试方法以及编写可测试代码的方法
第二十二篇-Bash-和-zsh-用法简明对照表
Light (default)
Rust
Coal
Navy
Ayu
Zsh-Guide
第一篇 变量和语句
导读
为什么用 zsh 写脚本
Zsh 脚本样例
为什么要使用 shell 脚本语言
格式约定
变量
变量定义
变量比较
语句
条件语句
循环语句
分支语句
用户输入选择语句
异常处理语句
简化的条件语句
总结
第二篇 字符串处理之常用操作
导读
字符串长度
字符串拼接
字符串切片
字符串截断
字符串查找
遍历字符
字符串替换
判断字符串变量是否存在
字符串匹配判断
大小写转换
目录文件名截取
相对路径转绝对路径
字符串分隔
多行字符串
读取文件内容到字符串
读取进程输出到字符串
参考
第三篇 字符串处理之转义字符和格式化输出
导读
转义字符
单引号
双引号
反引号
print 命令用法
print 命令选项功能介绍
printf 命令用法
输出带颜色和特殊样式的字符串
print 选项列表
参考
第四篇 字符串处理之通配符
导读
通配符的基本用法
加强版通配符
总结
参考
第五篇 数组
导读
数组定义
元素读写
数组拼接
数组遍历
数组切片
元素查找
元素排序
去除重复元素
使用连续字符或者数值构造数组
从字符串构造数组
从文件构造数组
从文件列表构造数组
数组交集差集
数组交叉合并
对数组中的字符串进行统一的处理
总结
参考
更新历史
第六篇 哈希表
导读
哈希表定义
元素读写
哈希表拼接
哈希表遍历
元素查找
元素排序
从字符串、文件构造哈希表
对哈希表中的每个元素统一处理
多维哈希表
用一维哈希表模拟多维哈希表
用字符串分割访问来模拟多维哈希表
总结
第七篇 数值计算
导读
整数和浮点数类型
运算符
数学函数
参考
第八篇 变量修饰语
导读
变量修饰语的格式
变量默认值
数组拼接成字符串
字符串切分成数组
输出变量类型
字符串、数组或哈希表嵌套取值
字符串内容作为变量名再取值
对齐或截断数组中的字符串
总结
参考
第九篇 函数和脚本
导读
函数定义
参数处理
函数嵌套
返回值
局部变量
脚本
exit 命令
用 getopts 命令处理命令行选项
总结
参考
更新历史
第十篇 文件查找和批量处理
导读
简单例子
按文件属性查找
通配符修饰语列表
更复杂的用法
按文件时间查找文件
按文件大小查找文件
文件排序
组合使用
文件批量重命名
不展开通配符
总结
参考
更新历史
第十一篇 变量的进阶内容
导读
typeset 命令
强制字符串内容为小写或者大写
设置变量为环境变量
设置变量为只读变量
设置数组不包含重复元素
设置整数的位数
进制转换
同时对多个变量赋相同的值
绑定字符串和数组
显示变量的定义方式
什么地方该加双引号
总结
参考
更新历史
第十二篇 [[ ]] 的用法
导读
比较字符串
判断文件
比较文件
比较数值
组合使用
[ ] 符号
总结
参考
第十三篇 管道和重定向
导读
管道
关于管道的更多细节
重定向
更多重定向的用法
命名管道
exec 命令的用法
总结
参考
更新历史
第十四篇 文件读写
导读
写文件
创建文件
清空文件
删除文件
多行文本写入
用 mapfile 读写文件
从文件中间位置写入
读文件
读取整个文件
按行遍历文件
读取指定行
读取文件到数组
读取指定数量的字符
向文件中间插入内容
总结
第十五篇 进程与作业控制
导读
在子进程中执行代码
在后台运行进程
在脚本中使用后台进程执行代码
信号
总结
第十六篇 alias 和 eval 的用法
导读
alias
eval
总结
第十七篇 使用 socket 文件和 TCP 实现进程间通信
导读
Socket 文件
TCP
程序样例
总结
第十八篇 更多内置模块的用法
导读
模块的使用方法
日期时间相关模块
读写 gdbm 数据库
调度命令
底层的文件读写命令
其他模块
自己编写模块
总结
第十九篇 脚本实例讲解
导读
实例一:复制一个目录的目录结构
实例二:寻找不配对的文件
实例三:用 sed 批量重命名文件
实例四:根据文件的 md5 删除重复文件
实例五:转换 100 以内的汉字数字为阿拉伯数字
实例六:为带中文汉字数字的文件名重命名成以对应数字开头
实例七:统一压缩解压工具
实例八:方便并发运行命令的工具
实例九:批量转换图片格式
总结
更新历史
第二十篇 代码风格
导读
缩进
每行代码最多字符数
折行
空格
空行
括号
常量
变量
引号
函数
脚本行数
语句风格
总结
第二十一篇 测试方法以及编写可测试代码的方法
导读
单元测试
单个脚本的功能测试
功能测试示例
集成测试
系统测试
总结
第二十二篇 Bash 和 zsh 用法简明对照表
导读
Bash 和 zsh 用法简明对照表
总结