shell-test命令

test可用于测试表达式,支持测试的范围包括:字符串比较,算术比较,文件存在性、属性、类型等判断。
test “ a " = = " a" == " b” 等同于 [ “ a " = = " a" == " b” ]
[ “ a " = " a" = " b” ] ##等于 一个等于号和两个等于号都是判断是否相等
[ “ a " ! = " a" != " b” ] ##不等于
[ “ a " e q " a" -eq " b” ] ##等于
[ “ a " n e " a" -ne " b” ] ##不等于
[ “ a " l e " a" -le " b” ] ##小于等于
[ “ a " g e " a" -ge " b” ] ##大于等于
[ “ a " g t " a" -gt " b” ] ##大于
[ “ a " l t " a" -lt " b” ] ##小于
[ “ a " n e " a" -ne " b” -a “ a " g t " a" -gt " b” ] ##-a必须条件都满足
[ “ a " n e " a" -ne " b” -o" a " g t " a" -gt " b" ] ##-a条件至少满足一个
[ -z “$a” ] ##是否为空
[ -e “file” ] ##是否存在
[ -f “file” ] ##普通文件
[ -b “file” ] ##块设备
[ -S “file” ] ##套接字
[ -c “file” ] ##字符设备
[ -L “file” ] ##软链接

[root@desktop8 /]# test 1 == 2
[root@desktop8 /]# echo $?
1
[root@desktop8 /]# test 1 == 1
[root@desktop8 /]# echo $?
0
[root@desktop8 /]# [ 1 == 2 ]
[root@desktop8 /]# echo $?
1
[root@desktop8 /]# [ 1 == 1 ]
[root@desktop8 /]# echo $?
0
[root@desktop8 /]# [ 1 = 1 ]
[root@desktop8 /]# echo $?
0
[root@desktop8 /]# [ 1 != 1 ]
[root@desktop8 /]# echo $?
1
[root@desktop8 /]# [ 1 != 2 ]
[root@desktop8 /]# echo $?
0

一下用两个练习来用到上面的判断
练习:
判断输入的数字是否在10以内
1.输入是否为空
2.如果大于等于0小于等于10输出yes,否则输出no

[root@desktop8 脚本]# cat judge.sh 
#!/bin/bash
read -p "请输入一个数:" a
[ -z "$a" ] && { 
	echo "please input a num"
        exit 1
}
[ "$a" -le "10" -a "$a" -ge "0" ] && echo "yes" || echo "no" 
[root@desktop8 脚本]# sh judge.sh 
请输入一个数:0
yes
[root@desktop8 脚本]# sh judge.sh 
请输入一个数:10
yes
[root@desktop8 脚本]# sh judge.sh 
请输入一个数:11
no
[root@desktop8 脚本]# sh judge.sh 
请输入一个数:
please input a num

练习
判断文件类型:

[root@desktop8 脚本]# cat file.sh 
#!/bin/bash
read -p "请输入一个文件,包括路径:" char
[ -e "$char" ] && echo "文件存在" || echo "文件不存在"
[ -f "$char" ] && echo "该文件为普通文件"
[ -b "$char" ] && echo "该文件为块设备"
[ -S "$char" ] && echo "该文件为套接字"
[ -c "$char" ] && echo "该文件为字符设备"
[ -L "$char" ] && echo "该文件为软链接"
[root@desktop8 脚本]# sh file.sh 
请输入一个文件,包括路径:/etc/passwd
文件存在
该文件为普通文件
[root@desktop8 脚本]# sh file.sh 
请输入一个文件,包括路径:/file
文件不存在
[root@desktop8 脚本]# sh file.sh 
请输入一个文件,包括路径:/dev/vda1
文件存在
该文件为块设备
[root@desktop8 脚本]# sh file.sh 
请输入一个文件,包括路径:/bin/zsoelim
文件存在
该文件为普通文件
该文件为软链接

猜你喜欢

转载自blog.csdn.net/lm236236/article/details/85255915