测试 判断 test
1、数字比较
>-gtgreater than大于
<-ltlessthan小于
=-eqequal等于
>=-gegreater than or equal to 大于等于
<=-leless than or equal to小于等于
!=-neis not equal to 不等于
例子:
# test 1 -eq 1
# echo $?
0
# [ 1 -eq 10 ]
数字比较
2、字符串比较
abc abc
[ -n abc ]判断字符串abc长度非0
[ -z abc ]判断字符串长度为0
[ abc = abc ]判断两个字符串相等(一样)
[ abc != abc ]判断两个字符串不相等(不一样)
3、逻辑比较
与&&真真为真,真假为假,假假为假(均为真才为真,一个为假则为假)
或||真真为真,真假为真,假假为假(有一个为真则为真)
非!
例子:
# [ 1 -eq 1 ] && [ abc = abc ]
另外一种连接多个条件的语法# [ 1 -eq 1 -o 10 -lt 5 ]
# echo $?
0
# [ 1 -eq 1 ] && [ abc != abc ]
# echo $?
1
# [ 1 -eq 1 ] || [ abc != abc ] && [ 10 -gt 1 ]将&&符相连的条件看做一个整体,前面的1 -eq 1 条件变成一个或者个关系
逻辑比较
4、文件比较
[ -e a.txt ]判断文件a.txt存在
[ -d /opt/xxdir ]判断/opt/xxdir存在,并且是一个目录
[ -f /opt/a.txt ]判断/opt/a.txt存在,并且是一个普通文件
例子:
# [ -f ~/.bash_profile ]
# echo $?
0
文件比较,判断文件存在
判断语句
1、if ...then... 条件判断为真,然后执行命令
语法:
if [ 条件 ];then
command
fi
###if如果,条件判断结果为真,then那么执行command命令,fi表示判断语句结束。
2、if...then...else...如果条件判断为真,执行then后面的命令,否则else,执行else后的命令
if [ 条件 ];then
command
else
command
fi
###else,否则,表示前面条件判断为假的情况。
调试脚本:
sh -x if.sh 查看脚本执行的全过程
写个脚本,脚本运行后,首先让用户输入一个ip,然后脚本告知用户这个ip对应的机器是up的状态还是down的状态。
read读取用户的输入(ip),将输入赋值给变量IP
去ping $IP
编写shell测试脚本
测试脚本
3、多条件判断
if ...then...elif...then...fi
if [ 条件 ];then
command
elif [ 条件 ];then
command
elif [ 条件 ];then
command
else
command
fi
例子:
脚本
测试脚本