苏州网站设计选哪家晋中网站建设费用
文章目录
-  
目录
文章目录
前言
一.条件测试
概述:
文件测试
整数测试:
总结
 
前言
当我们完成某一命令的编写时,除了观察输出的内容,我们又如何得知命令是否执行成功呢?
这里,我们需要用到条件测试
一.条件测试
概述:
条件测试是在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
#执行成功
[root@server ~]# test -f /etc/passwd
[root@server ~]# echo $?
0
#执行失败
[root@server ~]# test -f /etc/aa
[root@server ~]# echo $?
1
[root@server ~]# test -f /etc/passwd && echo 1 || echo 0
1
[root@server ~]# [-f /etc/passwd]   # 注意:[] 中要有空格
bash: [-f: command not found...
 
文件测试
格式:如上
参数:
- -f:测试是否为普通文件
 - -d:测试是否是目录
 - -e:检测文件是否存在 存在返回true
 - -s:测试文件是否为空,文件为空返回true
 - -r:存在且可读
 - -w:存在且可写
 - -x:存在且可执行
 
案列 1:
[root@server ~]# [ -d /root ] && echo y || echo n
y 
案例 2:编写脚本测试文件是否存在
[root@server ~]# 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 
[root@server ~]# bash temp1.sh /etc/passwd #位置变量$1代表/etc/passwd
/etc/passwd
/etc/passwd文件已存在 
整数测试:
作用:
- 用于比较两个数值的大小关系,操作的对象是数值 

 
案例:
[root@server ~]# [ 5 -gt 3 ] && echo y || echo n  
y
n 
拓展知识:
# 检查左侧内容是否包含右侧的表达式,可以使用 =~ 正则
匹配,表示是否包含
[root@server ~]# n=123
[root@server ~]# [[ "$n" =~ ^[0-9]+$ ]] && echo y || echo n
y
[root@server ~]# n=123ttt
[root@server ~]# [[ "$n" =~ ^[0-9]+$ ]] && echo y || echo n
n 
 
