一.条件判断
test "$a" == "$b" 等同于 [ "$a" == "$b" ]
[ "$a" = "$b" ] ##等于
[ "$a" != "$b" ] ##不等于
[ "$a" -eq "$b" ] ##等于
[ "$a" -ne "$b" ] ##不等于
[ "$a" -le "$b" ] ##小于等于
[ "$a" -ge "$b" ] ##大于等于
[ "$a" -gt "$b" ] ##大于
[ "$a" -lt "$b" ] ##小于
[ "$a" -ne "$b" -a "$a" -gt "$b" ] ##-a必须条件都满足
[ "$a" -ne "$b" -o"$a" -gt "$b" ] ##-a条件至少满足一个
[ -z "$a" ] ##是否为空
[ -e "file" ] ##是否存在
[ -f "file" ] ##普通文件
[ -b "file" ] ##块设备
[ -S "file" ] ##套接字
[ -c "file" ] ##字符设备
[ -L "file" ] ##软链接
二.练习
- 判断输入的数字是否在10以内
1.输入是否为空
2.是否在10以内
3.1<$a<10 --> yes
4.$a<1 $a>10 --> no
#!/bin/bash
[ -z "$1" ] && {
echo "please input a number!"
exit 1
}
[ "$1" -gt "0" -a "$1" -lt "10" ] && {
echo "YES"
}||{
echo "NO"
}
- 判断文件类型
-
[root@localhost mnt]# vim file.sh [root@localhost mnt]# cat file.sh #!/bin/bash [ -z "$1" ] && { echo "please enter the file name" exit 1 } [ -e "$1" ] || { echo "this file does not exist" exit 1 } [ -f "$1" ] && { echo "the file is a normal file" } [ -b "$1" ] && { echo "the file is a block device" } [ -S "$1" ] && { echo "the file is a normal socket" } [ -c "$1" ] && { echo "the file is a character device" } [ -L "$1" ] && { echo "the file is a soft link" } [root@localhost mnt]# sh file.sh test.sh the file is a normal file