条件测试和逻辑测试:
shell脚本中:0为真,执行成功,所有非0都是假,执行失败
条件测试的命令:
- 格式1:
- test 操作符 条件表达式 文件
- 常用操作符:
- -e exist测试目录或文件是否存在
- -d 测试是否为目录
- -f 测试是否为文件
- -r 测试当前用户是否有读权限
- -w 测试当前用户是否有写权限
- -x 测试当前用户是否有执行权限
- test 也可以进行数值和字符串的比较
- 字符串比较的内容是否一致
- 常用的比较符
以下比较符只能用于比较整数- -eq 等于
- -ne 不等于
- -gt 大于
- -lt 小于
- -le 小于等于
- -ge 大于等于
- 第二种写法
- == 等于
- != 不等于
- >,>=,<,<=
- 上面两种都不可以用于浮点数
- 格式2:[ 条件表达式 ]
格式2就是把格式1的 test 换成 [],其他都一样- 比如说:[ 3 -eq 2 ],注意空格
[空格3空格-eq空格2空格] - 这种方式容易出现歧义
- 比如说:[ 3 -eq 2 ],注意空格
- 格式3:[[ 条件表达式 ]]
- 双中括号比单中括号的功能更加强大,可以减少歧义的出现
- 只有双中括号可以支持正则表达式
- 强烈推荐此方法
逻辑测试的表达语句:
- -a 或者 && (逻辑与)
- -o 或者 || (逻辑或)
- !(逻辑否,即取反)
- 举例

- 双中括号只支持字符,不支持字母(这里指的是逻辑运算符)

if语句
单分支结构
- 格式:
if [[ 条件测试语句 ]]
then
命令
fi - 举例

双分支结构
- 格式
if [[ 条件测试语句 ]]
then
命令
else
命令
fi
多分支结构
- 格式
if [[ 条件测试语句 ]]
then
命令
elif [[ 条件测试语句 ]]
then
命令
else
命令
fi
case语句
- 格式
case 变量名 in
模式1)
命令
;;
模式2)
命令
;;
*)
命令
esac
本文介绍了shell脚本中的条件测试,包括使用test操作符进行文件和权限检查,以及字符串和数值比较。还详细讲解了逻辑测试如`-a`、`-o`和`!`,以及if、elif和case语句的多分支结构,推荐使用双中括号进行更清晰的条件表达。
1008

被折叠的 条评论
为什么被折叠?



