/images/avatar.png

shell test 条件判断

test 是 shell 内置的条件检测命令,常与 if 语句配合使用,也可简写为 []。本文系统整理 test 在字符串、整数、文件三个方面的判断选项,附流程控制(break/continue)说明和按年龄分段的综合示例,并总结 test 比较字符串与数字时的注意事项。

shell 参数处理

shell 脚本通过 $1、$2 等位置参数引用命令行传入的参数。本文通过多个示例演示参数处理的常见用法:显示脚本名和参数、校验参数个数、把参数当作文件名使用、用 $@ 循环遍历所有参数,并特别说明超过 9 个参数时需用 ${10} 的写法。

shell 算术表达式

bash 中计算算术表达式有 expr 命令、(( x = expression )) 和 $(( expression )) 三种方式,其中 expr 需要注意 * 号的转义。此外还可通过 declare -i 显式声明整型变量,使其赋值自动按算术求值。

shell 文件和重定向

Unix 中每个进程默认拥有 STDIN、STDOUT、STDERR 三个输入输出通道。本文介绍文件重定向的常见用法:输入重定向、文件合并与追加、«EOF heredoc 写法、错误日志重定向到文件,以及 2>&1 合并输出与错误,文末附重定向命令速查表。

shell 常用脚本

本文收集了生产中常用的 shell 脚本片段,包括用 IFS 分割字符串、进程探测与 Nginx 自动重启(结合 Keepalived 漂移)、目录循环批量安装 Helm chart、结合 cron 定时清空日志文件内容,以及用 telnet 批量探测主机端口是否处于监听状态。