本文共 2736 字,大约阅读时间需要 9 分钟。
####################test命令####################
测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值格式1:test 条件表达式格式2:[ 条件表达式 ]·文件测试[ 操作符 文件或目录 ]-d:测试是否为目录(Directory)-e:测试目录或文件是否存在(Exist)-f:测试是否为文件(File)-r:测试当前用户是否有权限读取(Read)-w:测试当前用户是否有权限写入(Write)-x:测试当前用户是否有权限执行(eXcute)·[root@localhost ~]# [ -d /media/cdrom ][root@localhost ~]# echo $?0[root@localhost ~]# [ -d /media/cdrom/Server ][root@localhost ~]# echo $?1[root@localhost ~]# [ -d /media/cdrom ] && echo "YES"YES ·####################整数值比较####################[ 整数1 操作符 整数2 ]常用的测试操作符-eq:等于(Equal)-ne:不等于(Not Equal)-gt:大于(Greater Than)-lt:小于(Lesser Than)-le:小于或等于(Lesser or Equal)-ge:大于或等于(Greater or Equal)·Unum=who | wc -l
###查看当前以登录用户数[ $Unum -gt 2 ] && echo "Too many." ###如果大于2就显示Too many.小于或等于则不提示Too many.·FreeCC=$( free -m | grep "Mem: " | awk '{print $6}' ) ###查看物理内存(Mem)当低于1024MB时输出具体值[ $FreeCC -lt 1024 ] && echo ${FreeCC}MB·####################字符串比较####################格式[ 字符串1 = 字符串2 ][ 字符串1 != 字符串2 ][ -z 字符串 ]常用的测试操作符=:字符串内容相同!=:字符串内容不同,! 号表示相反的意思-z:字符串内容为空·echo $LANG[ $LANG != "en.US" ] && echo "Not en.us"·read -p "是否覆盖现有文件(yes/no)?" ACK是否覆盖现有文件(yes/no)?yes[ $ACK = "yes" ] && echo "覆盖"覆盖·read -p "是否覆盖现有文件(yes/no)?" ACK是否覆盖现有文件(yes/no)?no[ $ACK = "no" ] && echo "不覆盖"不覆盖·####################逻辑测试####################格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ... 格式2:命令1 操作符 命令2 ... 常用的测试操作符-a或&&:逻辑与,“而且”的意思-o或||:逻辑或,“或者”的意思!:逻辑否,相反的·uname -r Mnum=$(uname -r | awk -F. '{print $1}')Snum=$(uname -r | awk -F. '{print $2}')[ $Mnum -ge 3 ] && [ $Snum -gt 4 ] && echo "符合要求" ###前面两个都成立,则输出·####################if语句的结构#################·1、单分支结构if 条件测试then命令判断fi·判断挂载点目录,若不存在则自动创建[root@localhost ~]# cat chkmountdir.sh#!/bin/bashMOUNT_DIR="/media/cdrom/"if [ ! -d $MOUNT_DIR ]thenmkdir -p $MOUNT_DIRfi·2、双分支结构if 条件测试then命令序列1else命令序列2fi·判断目标主机是否存活,显示检测结果[root@localhost ~]# cat pinghost.sh#!/bin/bashping -c 3 -i 0.2 -W 3 $1 &> /dev/nullif [ $? -eq 0 ]thenecho "Host $1 is up."elseecho "Host $1 is down."fi··3、多分支结构if 条件测试操作1then命令序列1elif 条件测试操作2then命令序列2else命令序列3fi·判断分数范围,分出优秀、合格、不合格三档[root@localhost ~]# vi gradediv.sh#!/bin/bashread -p "请输入您的分数(0-100):" GRADEif [ $GRADE -gt 100 ]thenecho "$GRADE 分,大于100分了,输入有问题"elif [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]thenecho "$GRADE 分,优秀!"elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]thenecho "$GRADE 分,合格!"elseecho "$GRADE 分,不合格!"fi·[root@localhost opt]#chmode +x gradediv.sh[root@localhost opt]# ./gradediv.sh 请输入您的分数(0-100):101101 分,大于100分了,输入有问题[root@localhost opt]# ./gradediv.sh 请输入您的分数(0-100):8888 分,优秀![root@localhost opt]# ./gradediv.sh 请输入您的分数(0-100):00 分,不合格! 转载于:https://blog.51cto.com/13348945/2175538