`

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

 
阅读更多

原文

http://www.jb51.net/article/34332.htm

在linux shell编程中,大多数情况下,可以使用测试命令来对条件进行测试,这里简单的介绍下,方便需要的朋友

比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。

注意:这里的空格很重要。要确保方括号的空格。笔者就曾因为空格缺少或位置不对,而浪费好多宝贵的时间。

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命令选项在执行某一文件之前检查它是否存在。

下面举二个例子吧,以方便大家的理解。

1、判断文件是否存在

代码如下:
#!/bin/sh
# 判断文件是否存在
# link:www.jb51.net
# date:2013/2/27

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" test123@jb51.net <error.log
fi

代码如下:
#!/bin/sh
# 清除相关文件,并按时间段记录日志
# link:www.jb51.net
# date:2013/2/27
#
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

 

分享到:
评论

相关推荐

    linux中if参数详解

    - `-eq`, `-ne`, `-lt`, `-le`, `-gt`, `-ge`:比较两个整数是否相等、不等、小于、小于等于、大于、大于等于。 4. **字符串比较**: - `[[ string1 == string2 ]]`:字符串比较,支持模式匹配。 5. **逻辑...

    Linux if语句详解

    在Linux shell中,`if`语句常用的条件测试包括文件测试和字符串测试以及算术比较。 **文件测试运算符**: - `-b`: 如果文件存在且是块设备文件,则返回真。 - `-c`: 如果文件存在且是字符设备文件,则返回真。 - `-...

    Linux Shell 逻辑运算符

    在深入探讨Linux Shell中的逻辑运算符之前,我们首先需要对逻辑运算符的基本概念以及它们在Linux Shell环境下的应用有一个清晰的认识。逻辑运算符是编程语言和脚本语言中非常重要的一部分,尤其是在条件判断和流程...

    Linux shell编程从入门到进阶150例_shell脚本语言

    =`(不等于)、`&gt;`(大于)、`(小于)、`&gt;=`(大于等于)、`(小于等于),以及`&&`(与)、`||`(或)。 4. **文件与目录操作**: - **路径处理**:`cd`改变目录,`pwd`显示当前工作目录。 - **文件操作**:`...

    Linux常用命令和管理09-shell之脚本编程条件判断及逻辑运算1

    本文将深入探讨shell脚本中的条件判断和逻辑运算,以及它们在实际脚本编写中的应用。 首先,我们要理解shell脚本中的一个核心概念:命令的状态返回值。每个命令执行后都会返回一个状态码,成功执行通常是0,表示真...

    shell浅谈之二 运算符和if条件判断

    1. **整数比较运算符**:如`-eq`(等于)、`-ne`(不等于)、`-lt`(小于)、`-gt`(大于)、`-le`(小于或等于)、`-ge`(大于或等于)。 2. **字符串运算符**:`=`(等于)、`!=`(不等于)、`-z`(字符串长度为0...

    linux中Shell编程

    7. **测试命令**:`test`命令用于检查条件是否为真,支持各种比较操作,如`-eq`(等于),`-ne`(不等于),`-gt`(大于),`-ge`(大于等于),`-lt`(小于),`-le`(小于等于)等。 8. **字符串和文件测试**:...

    linux shell编程

    在条件判断中,Shell支持以下逻辑运算符:`-eq`(等于)、`-ne`(不等于)、`-gt`(大于)、`-lt`(小于)、`-ge`(大于等于)、`-le`(小于等于)、`-o`(或)、`-a`(与)。 **十、正则表达式** 在Shell中,`[[`...

    第九章 Linux的shell编程.docx

    在Shell编程中,有算术运算符(如加减乘除)、逻辑运算符(与、或、非)以及比较运算符(等于、不等于、大于、小于等)。例如,`-eq` 用于判断两个数是否相等,`-gt` 判断是否大于,`-lt` 判断是否小于。此外,还有...

    linux的shell编程

    Linux的Shell编程是一种强大的工具,它允许用户通过脚本自动化一系列命令操作,提高工作效率。以下是一些关于Shell编程的关键知识点: 1. 条件测试 (`test` 命令): - `-e file`:检查文件是否存在。 - `-z ...

    Linux系统中的 Shell 编程.doc

    在Linux系统中,Shell编程是一种强大的工具,它允许用户编写包含一系列命令的文本文件,即Shell脚本,以便自动化执行重复性操作、批量事务处理、自动化运维任务以及定时任务执行。Shell脚本通过解释器来执行,其中`#...

    Linux SHELL脚本

    比较表达式包括`-eq`(等于),`-ne`(不等于),`-gt`(大于),`-lt`(小于),`-le`(小于或等于),`-ge`(大于或等于),以及字符串比较如`-z`(空串)和`-n`(非空串)。 逻辑操作符包括`-a`(与,等同于`&&`...

    shell编程教程

    fi`,支持`-eq`(等于)、`-ne`(不等于)、`-gt`(大于)、`-lt`(小于)、`-ge`(大于等于)、`-le`(小于等于)等比较运算符。 2. 循环语句: - `for var in items; do commands; done` - `while condition; ...

    shell脚本语言学习

    7. **逻辑运算符和比较运算符**:如`-eq`(等于),`-ne`(不等于),`-gt`(大于),`-lt`(小于),`-ge`(大于等于),`-le`(小于等于)等。 8. **脚本调试**:可以使用`set -x`开启命令行追踪,`set -v`显示...

    shell基础12篇电子书shellchoki.chm

    1. 数值测试:`-eq`(等于),`-ne`(不等于),`-gt`(大于),`-ge`(大于等于),`-lt`(小于),`-le`(小于等于)。 2. 字符串测试:`=`, `!=`(字符串比较),`-z`(字符串长度为0),`-n`(字符串长度不为0)...

    shell 操作例子

    4. **逻辑运算符**:在`if`语句中,常用逻辑运算符有`-eq`(等于),`-ne`(不等于),`-gt`(大于),`-lt`(小于),`-ge`(大于或等于),`-le`(小于或等于)。例如,比较两个数值: ```bash num1=10 num2=20...

    第二十二章:shell条件语句及判断1

    整数比较则允许我们比较两个整数,如`-gt`(大于)、`-ge`(大于等于)、`-eq`(等于)、`-lt`(小于)、`-le`(小于等于)和`-ne`(不等于)。字符串比较主要用于比较变量的值,如`==`和`!=`用于判断两个字符串是否...

Global site tag (gtag.js) - Google Analytics