if常见判断逻辑运算符详解:
-f 判断文件是否存在 if [ -f filename ];
-d 判断目录是否存在 if [ -d /data/backup ]
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试当前用户是否有权限执行(eXcute
-eq 等于数学中的"="
-ne 等于数学中的"≠"
-lt 等于数学中的"<"
-gt 等于数学中的">"
-le 等于数学中的"<="
-ge 等于数学中的">="
-a 逻辑表达式,双方都成立,并且的意思 (吃饭前的准备="洗手 -a 刷牙" #吃饭前应该洗手并且刷牙)
-o 逻辑表达式,双方有一方面成立,或者的意思 (怎么去同学家="坐车 -o 走路" #怎么去同学家,走路或者坐车)
|| 等价于"-o"
&& 等价于"-a"
实例:
#!/bin/bash
file=a.txt
dir=/data/backup/
Mem=`free -m | grep "^Mem:" | awk '{print $3}'`
df=`df -h | awk NR==7 | awk -F "%" '{print $1}' | awk '{print $5}'`
#判断a.txt文件是否存在
[ -f $file ] && echo "该文件${file}存在" || echo "该文件${file}不存在"
#判断目录是否存在
[ -d $dir ] && echo "该目录${dir}存在" || echo "该目录${dir}不存在"
#判断root用户对/etc/passwd文件是否有读的权限
su $USER -c '[ -r /etc/passwd ] && echo "$USER对/etc/passwd文件有读的权限" || echo "$USER对/etc/passwd文件没有读的权限"'
#判断root用户对/etc/passwd文件是否有写的权限
su $USER -c '[ -w /etc/passwd ] && echo "$USER对/etc/passwd文件有写的权限" || echo "$USER对/etc/passwd文件没有写的权限"'
#判断root用户对/etc/passwd文件是否有执行的权限
su $USER -c '[ -x /root/panduan.sh ] && echo "$USER对/etc/passwd文件有执行的权限" || echo "$USER对/etc/passwd文件没有执行的权限"'
#判断当前用户是否为root
if [ $UID -eq 0 ]
then
echo "当前用户是root"
else
echo "当前用户不是root"
fi
#判断用户输入的第一个参数不等于20
if [ $1 -ne 30 ]
then
echo "参数不等于30"
else
echo "参数等于30"
fi
#判断当前已使用内存是否小于500M
if [ $Mem -lt 500 ]
then
echo "当前使用内存为${Mem}M,小于500M"
else
echo "当前使用内存为${Mem}M,大于500M"
fi
#判断当前已使用内存是否大于100M
if [ $Mem -gt 100 ]
then
echo "当前使用内存为${Mem}M,大于100M"
else
echo "当前使用内存为${Mem}M,小于100M"
fi
#判断当前磁盘占用率是否大于等于80%
if [ $df -ge 80 ]
then
echo "当前的磁盘占用率为${df}%,大于等于80%"
fi
#判断当前磁盘占用率是否小于等于80%
if [ $df -le 100 ]
then
echo "当前的磁盘占用率为${df}%,小于等于100%"
fi
该脚本执行结果
希望通过以上脚本让各位读者能对if常用的判断逻辑运算符有一定的理解
大佬勿喷 大佬勿喷 大佬勿喷