shell中IF的用法详情

作者 : 开心源码 本文共1396个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共255人阅读

一、语法结构

if [ condition ]then     statements [elif condition     then statements. ..] [else     statements ] fi

二、说明

(1)[ condition ] (注意condition前后要有空格)
非空返回true,可使用$?验证(0为true,>1为false) 如:[ hadoop ] 返回true
空返回false 如:[ ] 返回false
(2)[ condition ] && echo OK ||echo notok 可以多条件,条件满足,执行后面的语句

三、整数比较

   -eq 等于,如:if [ "$a" -eq "$b" ]    -ne 不等于,如:if [ "$a" -ne "$b" ]    -gt 大于,如:if [ "$a" -gt "$b" ]    -ge 大于等于,如:if [ "$a" -ge "$b" ]    -lt 小于,如:if [ "$a" -lt "$b" ]    -le 小于等于,如:if [ "$a" -le "$b" ]     大于(需要双括号),如:(("$a" > "$b"))    >= 大于等于(需要双括号),如:(("$a" >= "$b"))    小数据比较可使用AWK #下一篇单独详情awk数据解决

四、字符串比较

   = 等于,如:if [ "$a" = "$b" ]   == 等于,如:if [ "$a" == "$b" ],与=等价   != 不等于,如:if [ "$a" != "$b" ]   这个操作符将在[[]]结构中使用模式匹配.   大于,在ASCII字母顺序下.如:   if [[ "$a" > "$b" ]]   if [ "$a" \> "$b" ]     注意:在[]结构中">"需要被转义.   -z 字符串为"null".就是长度为0.   -n 字符串不为"null"

五、权限判断

-r  有读的权限-w  有写的权限-x  有执行的权限

六、文件系统类型判断

-f  文件存在并且是一个常规的文件-s  文件存在且不为空-d  文件存在并是一个目录-b  文件存在并且是一个块设施-L  文件存在并且是一个软连接

实例1 特权客户的高内存占用查询

#!/bin/bashif [ root == `awk -F: '$3==0{print $1}' /etc/passwd ` ];then #>字符判断        echo "Privileged user is root"  #>判断特权客户能否只有root        echo "===================================/n======/n="else        echo "Privileged users are not root"         exit 1fips aux > 123.txtif [ $? == 0 ] ;then        echo "High memory occupancy analysis"        echo "===================================/n======/n="        awk '$4>="0.3"{print $1,$11}' 123.txt  #>这个$4的点自己设置,这里虚拟机没吃内存厉害应用        echo "---------------------end----------------"        exit 1fi

案例2 远程登录的客户的介绍查询

[root@server 桌面]# cat 123.sh #!/bin/bashlsof -i :ssh |grep -v sshd > 123.txtif [ $? -eq 0 ];then        echo "Display of users without remote login "    cat 123.txt        exit 1else        echo "Users without remote login"fi

…..

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » shell中IF的用法详情

发表回复