微信网站制作公司哪家好,外贸双语网站源码,百度电话号码查询,怎么查百度收录网站吗文章目录 目录 文章目录 前言 一.条件测试 概述#xff1a; 文件测试 整数测试#xff1a; 总结 前言
当我们完成某一命令的编写时#xff0c;除了观察输出的内容#xff0c;我们又如何得知命令是否执行成功呢#xff1f;
这里#xff0c;我们需要用到条件测试 一.条… 文章目录 目录 文章目录 前言 一.条件测试 概述 文件测试 整数测试 总结 前言
当我们完成某一命令的编写时除了观察输出的内容我们又如何得知命令是否执行成功呢
这里我们需要用到条件测试 一.条件测试
概述
条件测试是在Shell脚本中非常重要的一部分它们用于测试脚本中的变量或表达式是否成立。
分类 test条件测试的标准命令。例如使用test命令测试一个变量的值是否等于某个值。 [ ]方括号中括号是test的另一种形式它们被称为test的别名。例如[ $var -eq 10 ] 表示测试变量 $var 是否等于10。 [[ ]]双方括号是Bash Shell的重要特性比test和[ ]更强大可以使用通配符等进行模式匹配 || 等操作符可以直接应用于双中括号中但不能用于[ ] (( ))该操作符用于算术运算测试。可使用数学符号 不需要使用参数 例如使用(( num 10 )) 测试变量 $num 是否大于10。
语法格式
格式1 test -参数 条件表达式格式2 [ 条件表达式 ] # 注意[]的左右要有 空格 格式3 [[ 条件表达式 ]] # 注意[]的左右要有 空格格式4 ((条件表达式)) #注意不需要左右有 空格
结果测试
test单独使用判断条件为真echo $? 真返回0假返回1 案例 1
#执行成功
[rootserver ~]# test -f /etc/passwd
[rootserver ~]# echo $?
0
#执行失败
[rootserver ~]# test -f /etc/aa
[rootserver ~]# echo $?
1
[rootserver ~]# test -f /etc/passwd echo 1 || echo 0
1
[rootserver ~]# [-f /etc/passwd] # 注意[] 中要有空格
bash: [-f: command not found...文件测试
格式如上
参数
-f测试是否为普通文件-d测试是否是目录-e检测文件是否存在 存在返回true-s测试文件是否为空文件为空返回true-r存在且可读-w存在且可写-x存在且可执行
案列 1
[rootserver ~]# [ -d /root ] echo y || echo n
y
案例 2编写脚本测试文件是否存在
[rootserver ~]# vim temp1.sh
#!/bin/bash
FILE$1 #$1代表位置变量此处以及下面一行改为read -p 请输入文件名: FILE
echo FILE
if test -e $FILE
thenecho $FILE文件已存在
else echo $FILE文件不存在开始新建...touch $FILEls -l $FILE
fi
[rootserver ~]# bash temp1.sh /etc/passwd #位置变量$1代表/etc/passwd
/etc/passwd
/etc/passwd文件已存在
整数测试
作用
用于比较两个数值的大小关系操作的对象是数值 案例
[rootserver ~]# [ 5 -gt 3 ] echo y || echo n
y
n 拓展知识
# 检查左侧内容是否包含右侧的表达式可以使用 ~ 正则
匹配表示是否包含
[rootserver ~]# n123
[rootserver ~]# [[ $n ~ ^[0-9]$ ]] echo y || echo n
y
[rootserver ~]# n123ttt
[rootserver ~]# [[ $n ~ ^[0-9]$ ]] echo y || echo n
n 总结