`

if else以及大于、小于、等于逻辑表达式

阅读更多

大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格。 
if ....; then 
  .... 
elif ....; then 
  .... 
else 
  .... 
fi

[ -f "somefile" ] :判断是否是一个文件 
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限 
[ -n "$var" ] :判断$var变量是否有值 
[ "$a" = "$b" ] :判断$a和$b是否相等
    -r file     用户可读为真 
  -w file     用户可写为真 
  -x file     用户可执行为真 
  -f file     文件为正规文件为真 
  -d file     文件为目录为真 
  -c file     文件为字符特殊文件为真 
  -b file     文件为块特殊文件为真 
  -s file     文件大小非0时为真 
  -t file     当文件描述符(默认为1)指定的设备为终端时为真  
######################################################### 
含条件选择的shell脚本          对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])

-ne —比较两个参数是否不相等 
-lt —参数1是否小于参数2 
-le —参数1是否小于等于参数2 
-gt —参数1是否大于参数2 
-ge —参数1是否大于等于参数2 
-f — 检查某文件是否存在(例如,if [ -f "filename" ]) 
-d — 检查目录是否存在 
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。 ################################################################## 
判断文件是否存在 
#!/bin/sh 
YACCESS=`date -d yesterday +%Y%m%d` 
FILE="access_$YACCESS.log.tgz" 
cd /data/nginx/logs
if [ -f "$FILE" ];then 
echo "OK" 
else 
echo "error $FILE" > error.log 
mail -s "$FILE backup fail" xxxx@yyyy.com <error.log 
fi

###############
#!/bin/sh

DIR=/data/img_cache
DAY=`date +"%Y-%m-%d %H:%M"`
NUM=`ls $DIR |wc -l`
DIRNAME=`ls $DIR| grep leveldb | head -n 1 | awk '{print $NF}'`
if [[ $NUM -gt 3 ]];then
    rm -rf $DIR/$DIRNAME
    echo "---------$DAY----($DIR)-----------------------" >> /tmp/img_cache.log
    echo "$DIRNAME Deleted successful" >> /tmp/img_cache.log
fi

补充:文件测试操作:
返回true,如果:
-e                          文件存在
-a                          文件存在(已被弃用)
-f                           被测文件是一个regular文件(正常文件,非目录或设备)
-s                          文件长度不为0
-d                          被测对象是目录
-b                          被测对象是块设备
-c                          被测对象是字符设备
-p                          被测对象是管道
-h                          被测文件是符号连接
-L                          被测文件是符号连接
-S(大写)                 被测文件是一个socket
-t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
-r                          文件具有读权限,针对运行脚本的用户
-w                         文件具有写权限,针对运行脚本的用户
-x                          文件具有执行权限,针对运行脚本的用户
-u                          set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
-k                          设置粘贴位
-O                         运行脚本的用户是文件的所有者
-G                         文件的group-id和运行脚本的用户相同
-N                         从文件最后被阅读到现在,是否被修改

f1 -nt f2                文件f1是否比f2新
f1 -ot f2                文件f1是否比f2旧
f1 -ef f2                文件f1和f2是否硬连接到同一个文件

二元比较操作符,比较变量或比较数字

整数比较:
-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" ))
>                          大于(...)                      (( "$a" > "$b" ))
>=                        大于等于(...)                (( "$a" >= "$b" ))

字符串比较:
=                          等于           if [ "$a" = "$b" ]
==                        与=等价
!=                         不等于        if [ "$a" = "$b" ]
<                          小于,在ASCII字母中的顺序:
                            if [[ "$a" < "$b" ]]
                            if [ "$a" \< "$b" ]         #需要对<进行转义
>                          大于

-z                         字符串为null,即长度为0
-n                         字符串不为null,即长度不为0

分享到:
评论

相关推荐

    linux shell中 if else以及大于、小于、等于逻辑表达式介绍

    ### Linux Shell中的if else以及大于、小于、等于逻辑表达式介绍 #### 一、概述 在Linux Shell编程中,为了实现程序的逻辑控制与决策处理,`if...else`语句是不可或缺的一部分。通过结合逻辑表达式的使用,可以有效...

    1.4 编程基础之逻辑表达式与条件分支 python版.rar

    2. **条件分支**:条件分支是程序控制流程的关键部分,使用`if`,`elif`(else if)和`else`关键字实现。例如,“17 判断闰年.py”可能包含了使用条件语句来确定给定年份是否为闰年的代码。闰年的条件通常为:能被4...

    逻辑表达式-解析-python.docx

    Python 逻辑表达式是编程中不可或缺的一部分,它们用于在代码中进行条件判断,决定程序的执行路径。Python 支持多种类型的逻辑运算符和比较运算符,这些表达式在编写控制流语句(如 if、else 和 while)时起到关键...

    Java基础if和ifelse选择结构

    3. **关系运算符**:用于比较两个值,包括小于(`)、大于(`&gt;`)、等于(`==`)、不等于(`!=`)、小于等于(`)、大于等于(`&gt;=`)。例如,`int x = 10, y = 20; boolean isLess = x ;` 表示比较x是否小于y,并将布尔值结果赋...

    使用if else语句把它们的中间数找出来

    我们使用了逻辑运算符`and`来确保当前的数同时小于等于另一个数且大于等于第三个数,这样就能找出中间值。 如果输入的三个数相等,那么任何数都是中间数,程序会正确地输出其中的一个。这个程序展示了如何利用`if.....

    IF-ELSE条件语句的翻译程序设计(简单优先法、输出四元式)

    在IF-ELSE条件语句中,"条件运算符"通常是等于、不等于、大于、小于等比较操作符,"条件表达式"是需要判断的表达式,"布尔常量true"代表条件成立,"结果标识符"用来保存判断结果。根据这个结果,编译器会生成跳转四...

    1.4编程基础之逻辑表达式与条件分支_21苹果和虫子2

    逻辑表达式是编程中的基本概念之一,用于表示真假值的判断。在C++中,常见的逻辑运算符包括: - `==`(等于) - `!=`(不等于) - `(小于) - `&gt;`(大于) - `(小于等于) - `&gt;=`(大于等于) #### 1.2 条件分支 ...

    python if-else 写在一行(csdn)————程序.pdf

    在Python编程语言中,`if-else`语句用于条件判断,它允许我们在满足特定条件时执行一段代码,否则执行另一段代码。然而,为了使代码看起来更...对于复杂的逻辑,建议使用标准的多行`if-else`结构,以提高代码的清晰度。

    1.4编程基础之逻辑表达式与条件分支(21题)--题目 有链接.pdf

    通过比较一个整数是否大于等于10且小于等于99来确定其是否为两位数。 7. 收集瓶盖赢大奖:需要判断两个条件,即是否拥有足够数量的特定瓶盖,通过逻辑与操作符`&&`来判断这两个条件是否同时满足,以决定是否可以...

    常用正则表达式集合,粘贴即用

    根据给定文件的信息,我们可以总结出一系列与正则表达式相关的知识点,这些知识点主要围绕不同类型的输入限制展开,包括但不限于数字、字母、汉字以及其他特定字符的处理方式。 ### 一、仅允许输入非数字 在文件中...

    52.Python之ifelse共2页.pdf.zip

    print("num1 小于或等于 num2") ``` 此外,Python还提供了`elif`(else if)关键字,允许在同一个`if`结构中检查多个条件。这使得我们可以处理更复杂的逻辑,而无需嵌套多层`if`语句。一个包含`elif`的示例: ```...

    Java Methods-Boolean Expressions and if-else Statements.ppt

    Java 中的布尔表达式和 if-else 语句是非常重要的编程概念,本节将详细介绍布尔数据类型、if-else 语句、关系运算符、逻辑运算符、De Morgan’s Laws、短路运算符号、嵌套 if-else 语句、if-else-if 序列、switch ...

    C语言课件:4_第5章 选择结构程序设计.ppt

    本章主要介绍了关系运算符、逻辑运算符以及它们在构建逻辑表达式中的应用,最后讲解了if语句的使用。 首先,关系运算符用于比较两个操作数,共有六种:小于(),小于或等于(),大于(>),大于或等于(>=),等于(=...

    python基础教程:三元表达式 if for 构建List 进阶用法.pdf

    Python是一种高级编程语言,以其...通过熟练掌握三元表达式、for循环的if条件和else子句,你可以更好地控制程序的逻辑和数据处理,从而提升编程效率。对于初学者来说,理解并熟练运用这些概念是学习Python的关键步骤。

    选择结构程序设计.doc

    本课程主要关注如何理解和运用选择结构来解决实际问题,通过学习,学生将掌握逻辑量、关系表达式、逻辑表达式以及IF语句的使用。 1. 逻辑量的概念: 在QBASIC中,逻辑量通常用-1和0表示,分别代表真(True)和假...

    Python基础知识之嵌套if使用方法条件表达式.docx

    print(str(num_a) + '大于等于' + str(num_b) if num_a &gt;= num_b else str(num_a) + '小于' + str(num_b)) ``` 在这里,`if`后面的部分是条件,`num_a &gt;= num_b`,如果条件为真,则执行`str(num_a) + '大于等于' + ...

    Shell脚本if else语句小结

    Shell中的条件表达式支持多种运算符,如`-eq`(等于)、`-ne`(不等于)、`-gt`(大于)、`-lt`(小于)、`-ge`(大于或等于)、`-le`(小于或等于)。此外,还可以用`-z`检查字符串长度是否为零,`-n`检查字符串...

    C语言ch关系逻辑和条件表达式教程PPT学习教案.pptx

    关系运算符包括`&gt;`(大于)、`(小于)、`&gt;=`(大于等于)、`(小于等于)以及`==`(等于)和`!=`(不等于)。这些运算符用于比较两个表达式,并返回一个布尔值(0或1)。例如,`a &gt; b`将比较`a`和`b`,如果`a`大于`...

    c语言程序设计第三谭浩强选择PPT课件.pptx

    关系运算符有六种:&lt;(小于)、(小于或等于)、&gt;(大于)、&gt;=(大于或等于)、==(等于)和!=(不等于)。关系运算符的优先级低于算术运算符,高于赋值运算符。 关系表达式是用关系运算符将两个表达式连接起来的式...

Global site tag (gtag.js) - Google Analytics