首页›Linux操作系统›Linux网络操作系统-第20节-Shell特殊变量与运算符

Linux网络操作系统-第20节-Shell特殊变量与运算符

好脚本要能「传参复用」:备份脚本不该把备份路径写死。这一节学位置参数和整数运算。

第二十节 Shell特殊变量与运算符:$1/$#/$?、$(( ))与expr
第二十节 Shell特殊变量与运算符:$1/$#/$?、$(( ))与expr

一、特殊变量速查

变量 含义
$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。

上一篇
下一篇