Linux网络操作系统-第20节-Shell特殊变量与运算符
好脚本要能「传参复用」:备份脚本不该把备份路径写死。这一节学位置参数和整数运算。

一、特殊变量速查
| 变量 | 含义 |
|---|---|
| $0 | 脚本名本身 |
| $1 $2 … | 第 1、2 个位置参数 |
| $# | 参数个数 |
| $? | 上一条命令退出状态:0 成功,非 0 失败 |
# test.sh echo "脚本名: $0" echo "第一个参数: $1" echo "共 $# 个参数" # 执行:bash test.sh hello world
二、整数运算两种写法
echo $((5 + 3)) # 算术扩展(推荐,不用记空格) expr 5 + 3 # 老命令:运算符两边必须有空格 expr 5 \* 3 # expr 里 * 要转义
三、实战:两数相加计算器
vim add.sh #!/bin/bash sum=$(($1 + $2)) echo "$1 + $2 = $sum" chmod +x add.sh ./add.sh 3 5 # 输出 3 + 5 = 8 echo $? # 0,上一条执行成功
$? 的实战意义:脚本里判断上一步是否成功,成功才继续,失败就报错退出——这是「防御式脚本」的基础。
作业:写备份脚本 backup.sh,把第一个参数指定的目录打包到 /backup 下(提示:tar -czf /backup/名.tar.gz $1),执行前判断参数个数是否为 1。

