一、语法结构

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/bash
if [ 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 1
fi ps aux > 123.txt
if [ $? == 0 ] ;then
echo "High memory occupancy analysis"
echo "===================================/n======/n="
awk '$4>="0.3"{print $1,$11}' 123.txt #>这个$4的点自定义,这里虚拟机没吃内存厉害应用
echo "---------------------end----------------"
exit 1
fi

案例2 远程登录的用户的详情查询

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

简书链接

shell中IF的用法介绍的更多相关文章

  1. (转)Shell中read的用法详解

    Shell中read的用法详解 原文:http://blog.csdn.net/jerry_1126/article/details/77406500 read的常用用法如下: read -[pstn ...

  2. shell中case的用法学习笔记

    这篇文章主要为大家介绍shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码. 本文转自:http://www.jbxue.com/article ...

  3. shell中的EOF用法

    重定位运算符 >> 是追加内容> 是覆盖原有内容 1.EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止 ...

  4. shell 中的expect 用法

    expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: 1. expect中的判断语句: ...

  5. shell中set的用法(转)

    使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令将显 ...

  6. Xcode中git的用法介绍与&quot;Please tell me who you are&quot;问题的解决方式

    我在之前多篇博客中解说了怎样使用命令行操作git,能够大大提高我们的工作效率.详细能够參考<Git学习札记><Git学习札记--进阶>等文章.事实上对于同一个工具,我们有不同的 ...

  7. shell中+,*,[:space:]的用法

    http://blog.itpub.net/27181165/viewspace-1061688/ 在linux中通常会使用shell结合正则表达式来过滤字符,本文将以一个简单的例子来说明+,*,[: ...

  8. java中random()函数用法介绍

    Random() 创建一个新的随机数生成器.  代码如下 复制代码 Random(long seed) 使用单个 long 种子创建一个新的随机数生成器. 我们可以在构造Random对象的时候指定种子 ...

  9. 转shell中的awk用法详解

        awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 调用awk:   第一种,命令行方式 ...

随机推荐

  1. 将shell脚本运行情况写入Rsyslog日志server

    在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时运行完毕一些日常工作,实现运维工作自己主动化.比方在我的日常工作中备份数据是一项重要的工作,须要定时将数据备份到备份服器和一些其它的备份介 ...

  2. Fedora 17 安裝完全指南

    Fedora 17 关闭U盘自动mount gsettings set org.gnome.desktop.media-handling automount "false" gse ...

  3. Android核心服务解析篇(三)——Android系统的启动

    从大的方面来说.Android系统的启动能够分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动. 第一部分主要包含系统引导,核心和驱动程序等,因为它们不属于本篇要讲的内容 ...

  4. SPOJ 题目705 New Distinct Substrings(后缀数组,求不同的子串个数)

    SUBST1 - New Distinct Substrings no tags  Given a string, we need to find the total number of its di ...

  5. php冒泡排序函数

    $arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588); function maopao($arr,$value){// ...

  6. github README.md教程

    github README.md教程 总结 github中README.md通过特殊字符标记和缩进来达到格式控制,也可以用HTML标签来实现格式控制. 教程一: Markdown 的目标是实现「易读易 ...

  7. DNS RR代码和含义

    记录类型 代码 号码 定义的 RFC 描述 功能 A 1 RFC 1035 IP 地址记录 传回一个 32 比特的 IPv4 地址,最常用于映射主机名称到 IP地址,但也用于DNSBL(RFC 110 ...

  8. 10.bitset

    #include <iostream> //位运算,处理二进制非常方便,线性存储 #include <bitset> #include <string> using ...

  9. PostgreSQL数据库常用脚本-初始化、备份、恢复推荐脚本

    公司最近开始逐步推广使用PostgreSQL,为方便开发人员和实施人员操作,特整理数据库初始化.备份.恢复的推荐脚本如下: 1. 连接数据库 psql -h 127.0.0.1 -p 1921 -U ...

  10. OpenGL编程(四)改变窗口大小时保持图形的原形

    前面的例子,当我们通过拖拉的方法改变窗口的长宽比例时,窗口里的图形的长宽也相应地伸缩,导致图形变形.如下图: 正如上图所示,当我们把窗口宽度拉长后,图形就会显得比较胖.同样,当我们把窗口的高度拉长后, ...